MCPcopy Create free account
hub / github.com/ciniml/rust-dap / write_function_subset

Function write_function_subset

rust-dap/src/interface.rs:103–122  ·  view source on GitHub ↗
(
    buffer: &mut [u8],
    first_interface_number: InterfaceNumber,
    f: impl FnOnce(&mut [u8]) -> Result<usize>,
)

Source from the content-addressed store, hash-verified

101}
102
103fn write_function_subset(
104 buffer: &mut [u8],
105 first_interface_number: InterfaceNumber,
106 f: impl FnOnce(&mut [u8]) -> Result<usize>,
107) -> Result<usize> {
108 let length = 8usize;
109 if buffer.len() < length {
110 return Err(UsbError::BufferOverflow);
111 }
112 buffer[0] = u16_lo(length as u16);
113 buffer[1] = u16_hi(length as u16);
114 buffer[2] = u16_lo(MS_OS_20_SUBSET_HEADER_FUNCTION);
115 buffer[3] = u16_hi(MS_OS_20_SUBSET_HEADER_FUNCTION);
116 buffer[4] = first_interface_number.into();
117 buffer[5] = 0; // reserved
118 let total_length = f(&mut buffer[length..])? + length;
119 buffer[6] = u16_lo(total_length as u16);
120 buffer[7] = u16_hi(total_length as u16);
121 Ok(total_length)
122}
123
124fn write_compatible_id(
125 buffer: &mut [u8],

Callers 1

control_inMethod · 0.85

Calls 2

u16_loFunction · 0.85
u16_hiFunction · 0.85

Tested by

no test coverage detected