Skip to main content

write_to_slice

Function write_to_slice 

Source
pub fn write_to_slice<T: TraceData, S: AsRef<[Span<T>]>>(
    slice: &mut &mut [u8],
    traces: &[S],
) -> Result<(), ValueWriteError>
Expand description

Encodes a collection of traces into a slice of bytes.

§Arguments

  • slice - A mutable reference to a byte slice.
  • traces - A reference to a slice of spans.

§Returns

  • Ok(()) - If encoding succeeds.
  • Err(ValueWriteError) - If encoding fails.

§Errors

This function will return an error if:

  • The array length for trace count or span count cannot be written.
  • Any span cannot be encoded.

§Examples

use libdd_trace_utils::msgpack_encoder::v04::write_to_slice;
use libdd_trace_utils::span::v04::SpanSlice;

let mut buffer = vec![0u8; 1024];
let span = SpanSlice {
    name: "test-span",
    ..Default::default()
};
let traces = vec![vec![span]];

write_to_slice(&mut &mut buffer[..], &traces).expect("Encoding failed");