eculocate

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 5c0fb0166a8315f471d7e577492679088ad55f2a
parent 54392742119035f6e7c17b896dc2c6f53eda6547
Author: Daniel Barlow <dan@telent.net>
Date:   Thu, 25 Dec 2025 16:38:42 +0000

rdata_to_bytes now RData.to_bytes

Diffstat:
Mecu-esp32/src/wifi.rs | 36+++++++++++++++++++-----------------
1 file changed, 19 insertions(+), 17 deletions(-)

diff --git a/ecu-esp32/src/wifi.rs b/ecu-esp32/src/wifi.rs @@ -70,22 +70,24 @@ enum RData { Srv { target: String, port: u16, priority: u16, weight: u16 } } -fn rdata_to_bytes(rdata : &RData, out: &mut [u8]) { - match rdata { - RData::Raw(b) => out[..b.len()].clone_from_slice(&b), - RData::Srv { target, port, priority, weight } => - { - let mut b : [u8; 80] = [0; 80]; - out[0] = (priority >> 8) as u8; - out[1] = (priority & 0xff) as u8; - out[2] = (weight >> 8) as u8; - out[3] = (weight & 0xff) as u8; - out[4] = (port >> 8) as u8; - out[5] = (port & 0xff) as u8; - - let label = ecu_portable::ptr_data(&[&target[..]], &mut b); - for (i, l) in label.iter().enumerate() { - out[6+i] = *l; +impl RData { + fn to_bytes(&self, out: &mut [u8]) { + match self { + RData::Raw(b) => out[..b.len()].clone_from_slice(&b), + RData::Srv { target, port, priority, weight } => + { + let mut b : [u8; 80] = [0; 80]; + out[0] = (priority >> 8) as u8; + out[1] = (priority & 0xff) as u8; + out[2] = (weight >> 8) as u8; + out[3] = (weight & 0xff) as u8; + out[4] = (port >> 8) as u8; + out[5] = (port & 0xff) as u8; + + let label = ecu_portable::ptr_data(&[&target[..]], &mut b); + for (i, l) in label.iter().enumerate() { + out[6+i] = *l; + } } } } @@ -107,7 +109,7 @@ impl DnsResource { data: RData ) -> Self { let mut rdata_raw : [u8; 80] = [0; 80]; - rdata_to_bytes(&data, &mut rdata_raw); + data.to_bytes(&mut rdata_raw); Self { name: name.into(), ty,