use crate::{
cookie::{Checksum, Cookie, Metadata},
decode::{
binary_cookies::BinaryCookieFsm,
cookies::{CookieFsm, CookiesOffsetInPage},
meta::{MetaFsm, MetaOffset},
pages::{PageFsm, PagesOffset},
},
};
#[derive(Clone)]
#[derive(Debug)]
#[derive(Default)]
pub(crate) enum State {
Bc {
fsm: BinaryCookieFsm,
},
Page {
fsm: PageFsm,
remaining_page: u32,
},
Cookie {
fsm: CookieFsm,
remaining_cookie: u32,
remaining_page: u32,
},
Meta {
fsm: MetaFsm,
},
Finished,
#[default]
Transition,
}
#[derive(Clone)]
#[derive(Debug)]
pub enum Values {
Bc {
meta_offset: MetaOffset,
pages_offset: PagesOffset,
},
Page(CookiesOffsetInPage),
Cookie(Cookie),
Meta {
checksum: Checksum,
meta: Option<Metadata>,
},
}