diff options
author | metamuffin <metamuffin@disroot.org> | 2023-01-16 10:57:40 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-01-16 10:57:40 +0100 |
commit | 9f9449ddd58eb07d20e14e7a75c7387c9cc17ebe (patch) | |
tree | 52e39085589303d3d2e386a3575152fb6594bb61 /matroska/src/size.rs | |
parent | e3f1a8ac9f4c9a015e9eac769fb3262e3bd16bad (diff) | |
download | jellything-9f9449ddd58eb07d20e14e7a75c7387c9cc17ebe.tar jellything-9f9449ddd58eb07d20e14e7a75c7387c9cc17ebe.tar.bz2 jellything-9f9449ddd58eb07d20e14e7a75c7387c9cc17ebe.tar.zst |
write more code
Diffstat (limited to 'matroska/src/size.rs')
-rw-r--r-- | matroska/src/size.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/matroska/src/size.rs b/matroska/src/size.rs new file mode 100644 index 0000000..e774f0a --- /dev/null +++ b/matroska/src/size.rs @@ -0,0 +1,21 @@ + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum EbmlSize { + Exact(usize), + Unknown, +} +impl EbmlSize { + pub fn from_vint((value, len): (u64, usize)) -> EbmlSize { + if value == ((1 << (7 * len)) - 1) { + Self::Unknown + } else { + Self::Exact(value as usize) + } + } + pub fn some(self) -> Option<usize> { + match self { + EbmlSize::Exact(s) => Some(s), + EbmlSize::Unknown => None, + } + } +} |