embassy_stm32_plus/builder/usb/
ncm_state.rs

1use embassy_usb::class::cdc_ncm::State;
2
3/// ncm state
4pub struct NcmState<'a> {
5    pub state: State<'a>,
6    pub mac_address: [u8; 6],
7    /// full-speed devices, `max_packet_size` has to be one of 8, 16, 32 or 64.
8    pub max_packet_size: u16,
9}
10
11/// custom method
12impl<'a> NcmState<'a> {
13    /// full-speed devices, `max_packet_size` has to be one of 8, 16, 32 or 64.
14    pub fn new(state: State<'a>, mac_address: [u8; 6], max_packet_size: u16) -> Self {
15        Self { state, mac_address, max_packet_size }
16    }
17}
18
19/// support default
20impl<'a> Default for NcmState<'a> {
21    fn default() -> Self {
22        Self {
23            state: State::new(),
24            mac_address: [0; 6],
25            max_packet_size: 64,
26        }
27    }
28}