pub enum Action<I> {
SendMessage(Vec<u8>),
ScheduleTimer(ClientTimerType, I),
CancelTimer(ClientTimerType),
UpdateDnsServers(Vec<Ipv6Addr>),
IaNaUpdates(HashMap<IAID, HashMap<Ipv6Addr, IaValueUpdateKind>>),
IaPdUpdates(HashMap<IAID, HashMap<Subnet<Ipv6Addr>, IaValueUpdateKind>>),
}Expand description
Possible actions that need to be taken for a state transition to happen successfully.
Variants§
SendMessage(Vec<u8>)
ScheduleTimer(ClientTimerType, I)
Schedules a timer to fire at a specified time instant.
If the timer is already scheduled to fire at some time, this action will result in the timer being rescheduled to the new time.
CancelTimer(ClientTimerType)
Cancels a timer.
If the timer is not scheduled, this action should effectively be a no-op.
UpdateDnsServers(Vec<Ipv6Addr>)
IaNaUpdates(HashMap<IAID, HashMap<Ipv6Addr, IaValueUpdateKind>>)
The updates for IA_NA bindings.
Only changes to an existing bindings is conveyed through this
variant. That is, an update missing for an (IAID, Ipv6Addr) means
no new change for the address.
Updates include the preferred/valid lifetimes for an address and it is up to the action-taker to deprecate/invalidate addresses after the appropriate lifetimes. That is, there will be no dedicated update for preferred/valid lifetime expiration.
IaPdUpdates(HashMap<IAID, HashMap<Subnet<Ipv6Addr>, IaValueUpdateKind>>)
The updates for IA_PD bindings.
Only changes to an existing bindings is conveyed through this
variant. That is, an update missing for an (IAID, Subnet<Ipv6Addr>)
means no new change for the prefix.
Updates include the preferred/valid lifetimes for a prefix and it is up to the action-taker to deprecate/invalidate prefixes after the appropriate lifetimes. That is, there will be no dedicated update for preferred/valid lifetime expiration.
Trait Implementations§
impl<I> StructuralPartialEq for Action<I>
Auto Trait Implementations§
impl<I> Freeze for Action<I>where
I: Freeze,
impl<I> RefUnwindSafe for Action<I>where
I: RefUnwindSafe,
impl<I> Send for Action<I>where
I: Send,
impl<I> Sync for Action<I>where
I: Sync,
impl<I> Unpin for Action<I>where
I: Unpin,
impl<I> UnwindSafe for Action<I>where
I: UnwindSafe,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more