Skip to main content

sark_http/request/
seq.rs

1use std::mem;
2
3use dope_core::driver::schedule::sequence;
4
5use crate::request::Id;
6
7/// Single-threaded request identity sequence for one bound application.
8#[repr(transparent)]
9pub struct Seq<'d>(sequence::Block<'d>);
10
11impl<'d> Seq<'d> {
12    pub fn new(sequence: sequence::Block<'d>) -> Self {
13        Self(sequence)
14    }
15
16    pub fn try_next(&self) -> Result<Id<'d>, sequence::Exhausted> {
17        Ok(Id::new(self.0.try_next()?))
18    }
19}
20
21const _: () = assert!(mem::size_of::<Seq<'static>>() == 2 * mem::size_of::<usize>());