diff --git a/aya-log-common/src/lib.rs b/aya-log-common/src/lib.rs index d6a06316..bf4545ae 100644 --- a/aya-log-common/src/lib.rs +++ b/aya-log-common/src/lib.rs @@ -173,17 +173,12 @@ pub(crate) fn write(tag: u8, value: &[u8], buf: &mut [u8]) -> Option None, }?; let mut size = 0; - macro_rules! copy_from_slice { - ($value:expr) => {{ - let buf = buf.get_mut(size..)?; - let buf = buf.get_mut(..$value.len())?; - buf.copy_from_slice($value); - size += $value.len(); - }}; + for slice in [&[tag][..], &wire_len.to_ne_bytes()[..], value] { + let buf = buf.get_mut(size..)?; + let buf = buf.get_mut(..slice.len())?; + buf.copy_from_slice(slice); + size += slice.len(); } - copy_from_slice!(&[tag]); - copy_from_slice!(&wire_len.to_ne_bytes()); - copy_from_slice!(value); NonZeroUsize::new(size) } @@ -320,19 +315,18 @@ pub fn write_record_header( ) -> Option { let level: u8 = level.into(); let mut size = 0; - macro_rules! write { - ($tag:expr, $value:expr) => {{ - let buf = buf.get_mut(size..)?; - let len = write($tag.into(), $value, buf)?; - size += len.get(); - }}; + for (tag, value) in [ + (RecordField::Target, target.as_bytes()), + (RecordField::Level, &level.to_ne_bytes()), + (RecordField::Module, module.as_bytes()), + (RecordField::File, file.as_bytes()), + (RecordField::Line, &line.to_ne_bytes()), + (RecordField::NumArgs, &num_args.to_ne_bytes()), + ] { + let buf = buf.get_mut(size..)?; + let len = write(tag.into(), value, buf)?; + size += len.get(); } - write!(RecordField::Target, target.as_bytes()); - write!(RecordField::Level, &level.to_ne_bytes()); - write!(RecordField::Module, module.as_bytes()); - write!(RecordField::File, file.as_bytes()); - write!(RecordField::Line, &line.to_ne_bytes()); - write!(RecordField::NumArgs, &num_args.to_ne_bytes()); NonZeroUsize::new(size) }