Struct netstack3_filter::ValidRoutines
source · pub struct ValidRoutines<I: IpExt, DeviceClass>(/* private fields */);
Expand description
Witness type ensuring that the contained filtering state has been validated.
Implementations§
source§impl<I: IpExt, DeviceClass> ValidRoutines<I, DeviceClass>
impl<I: IpExt, DeviceClass> ValidRoutines<I, DeviceClass>
source§impl<I: IpExt, DeviceClass: Clone + Debug> ValidRoutines<I, DeviceClass>
impl<I: IpExt, DeviceClass: Clone + Debug> ValidRoutines<I, DeviceClass>
sourcepub fn new<RuleInfo: Clone>(
routines: Routines<I, DeviceClass, RuleInfo>
) -> Result<(Self, Vec<UninstalledRoutine<I, DeviceClass, ()>>), ValidationError<RuleInfo>>
pub fn new<RuleInfo: Clone>( routines: Routines<I, DeviceClass, RuleInfo> ) -> Result<(Self, Vec<UninstalledRoutine<I, DeviceClass, ()>>), ValidationError<RuleInfo>>
Validates the provide state and creates a new ValidRoutines
along with a
list of all uninstalled routines that are referred to from an installed
routine. Returns a ValidationError
if the state is invalid.
The provided state must not contain any cyclical routine graphs (formed by rules with jump actions). The behavior in this case is unspecified but could be a deadlock or a panic, for example.
§Panics
Panics if the provided state includes cyclic routine graphs.
Trait Implementations§
Auto Trait Implementations§
impl<I, DeviceClass> Freeze for ValidRoutines<I, DeviceClass>where
I: IcmpIpExt + IpProtoExt + Ip + Sealed + Sync + Send + PartialOrd + PartialEq + Ord + Hash + Eq + Default + Debug + Copy + Clone + EthernetIpExt + 'static,
impl<I, DeviceClass> RefUnwindSafe for ValidRoutines<I, DeviceClass>where
I: IcmpIpExt + IpProtoExt + Ip + Sealed + Sync + Send + PartialOrd + PartialEq + Ord + Hash + Eq + Default + Debug + Copy + Clone + EthernetIpExt + 'static,
<I as Ip>::Addr: RefUnwindSafe,
DeviceClass: RefUnwindSafe,
<I as IpProtoExt>::Proto: RefUnwindSafe,
impl<I, DeviceClass> Send for ValidRoutines<I, DeviceClass>
impl<I, DeviceClass> Sync for ValidRoutines<I, DeviceClass>
impl<I, DeviceClass> Unpin for ValidRoutines<I, DeviceClass>
impl<I, DeviceClass> UnwindSafe for ValidRoutines<I, DeviceClass>where
I: IcmpIpExt + IpProtoExt + Ip + Sealed + Sync + Send + PartialOrd + PartialEq + Ord + Hash + Eq + Default + Debug + Copy + Clone + EthernetIpExt + 'static,
<I as Ip>::Addr: UnwindSafe + RefUnwindSafe,
DeviceClass: UnwindSafe + RefUnwindSafe,
<I as IpProtoExt>::Proto: UnwindSafe + RefUnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<CC, BC, Meta> RecvFrameContext<BC, Meta> for CCwhere
Meta: ReceivableFrameMeta<CC, BC>,
impl<CC, BC, Meta> RecvFrameContext<BC, Meta> for CCwhere
Meta: ReceivableFrameMeta<CC, BC>,
source§impl<CC, BC, Meta> SendFrameContext<BC, Meta> for CCwhere
Meta: SendableFrameMeta<CC, BC>,
impl<CC, BC, Meta> SendFrameContext<BC, Meta> for CCwhere
Meta: SendableFrameMeta<CC, BC>,
source§impl<Meta, BC> SendableFrameMeta<FakeFrameCtx<Meta>, BC> for Meta
impl<Meta, BC> SendableFrameMeta<FakeFrameCtx<Meta>, BC> for Meta
source§impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
Id: HandleableTimer<CC, BC>,
impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
Id: HandleableTimer<CC, BC>,
source§fn handle_timer(&mut self, bindings_ctx: &mut BC, id: Id)
fn handle_timer(&mut self, bindings_ctx: &mut BC, id: Id)
Handle a timer firing.