use num_enum::{IntoPrimitive, TryFromPrimitive};
use crate::Ident;
#[expect(missing_docs)]
#[derive(Clone, Copy, Debug, Eq, PartialEq, TryFromPrimitive, IntoPrimitive)]
#[repr(u16)]
pub enum KnownUsage {
Undefined = 0,
SocControl = 0x01,
FirmwareTransfer = 0x02,
FirmwareFileId = 0x03,
FileOffsetInBytes = 0x04,
FileTransferSizeMaxInBytes = 0x05,
FilePayload = 0x06,
FilePayloadSizeInBytes = 0x07,
FilePayloadContainsLastBytes = 0x08,
FileTransferStop = 0x09,
FileTransferTillEnd = 0x0A,
}
pub type Usage = Ident<KnownUsage, u16>;