async_mp4/
bytes_reserve.rs

1use crate::error::MP4Error;
2use async_trait::async_trait;
3
4pub trait Mp4Reservable {
5    const BYTE_SIZE: usize;
6}
7
8
9impl Mp4Reservable for u8 { const BYTE_SIZE: usize = 1;}
10impl Mp4Reservable for u16 { const BYTE_SIZE: usize = 2;}
11impl Mp4Reservable for u32 { const BYTE_SIZE: usize = 4;}
12impl Mp4Reservable for u64 { const BYTE_SIZE: usize = 8;}
13impl Mp4Reservable for i8 { const BYTE_SIZE: usize = 1;}
14impl Mp4Reservable for i16 { const BYTE_SIZE: usize = 2;}
15impl Mp4Reservable for i32 { const BYTE_SIZE: usize = 4;}
16impl Mp4Reservable for i64 { const BYTE_SIZE: usize = 8;}
17
18impl<T: Mp4Reservable, const N: usize> Mp4Reservable for [T; N] { const BYTE_SIZE: usize = T::BYTE_SIZE * N;}
19
20#[async_trait]
21pub trait Mp4Reserve {
22    async fn reserve<T: Mp4Reservable>(&mut self) -> Result<usize, MP4Error>;
23}
24