Struct dhcpv4::stash::Stash

source ·
pub struct Stash { /* private fields */ }
Expand description

A wrapper around a fuchsia.stash.StoreAccessor proxy.

Stash provides a simple API by which the DHCP Server can store and load client configuration data to persistent storage.

This wrapper stores client configuration as serialized JSON strings. The decision to use JSON derives from its use in other Stash clients, cf. commit e9c57a0, and the relative immaturity of more compact serde serialization formats, e.g. https://github.com/pyfisch/cbor/issues.

Implementations§

source§

impl Stash

source

pub fn new(id: &str) -> Result<Self, StashError>

Instantiates a new Stash value.

The newly instantiated value will use id to identify itself with the fuchsia.stash service.

source

pub async fn load_client_records(&self) -> Result<ClientRecords, StashError>

Loads a ClientRecords map from data stored in fuchsia.stash.

This function will retrieve all client configuration data from fuchsia.stash, deserialize the JSON string values, and load the resulting structured data into a ClientRecords hashmap. Any key-value pair which could not be parsed or deserialized will be removed and skipped.

source

pub async fn load_options( &self ) -> Result<HashMap<OptionCode, DhcpOption>, StashError>

Loads a map of OptionCodes to DhcpOptions from data stored in fuchsia.stash.

source

pub async fn load_parameters(&self) -> Result<ServerParameters, StashError>

Loads a new instance of ServerParameters from data stored in fuchsia.stash.

source

pub fn clear(&self) -> Result<(), StashError>

Clears all configuration data from fuchsia.stash.

This function will delete all key-value pairs associated with the Stash value.

Trait Implementations§

source§

impl Clone for Stash

source§

fn clone(&self) -> Stash

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl DataStore for Stash

§

type Error = StashError

source§

fn insert( &mut self, client_id: &ClientIdentifier, client_record: &LeaseRecord ) -> Result<(), Self::Error>

Inserts the client record associated with the identifier.
source§

fn store_options(&mut self, opts: &[DhcpOption]) -> Result<(), Self::Error>

Stores the DHCP option values served by the server.
source§

fn store_parameters( &mut self, params: &ServerParameters ) -> Result<(), Self::Error>

Stores the DHCP server’s configuration parameters.
source§

fn delete(&mut self, client_id: &ClientIdentifier) -> Result<(), Self::Error>

Deletes the client record associated with the identifier.
source§

impl Debug for Stash

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Stash

§

impl Send for Stash

§

impl Sync for Stash

§

impl Unpin for Stash

§

impl !UnwindSafe for Stash

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Encode<Ambiguous1> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
§

impl<T> Encode<Ambiguous2> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> IntoAny for Twhere T: 'static + Send + Sync,

§

fn into_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send + 'static>

Cast the given object into a dyn std::any::Any.
§

impl<T, U> IntoExt<U> for Twhere U: FromExt<T>,

§

fn into_ext(self) -> U

Performs the conversion.
§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T, U> TryIntoExt<U> for Twhere U: TryFromExt<T>,

§

type Error = <U as TryFromExt<T>>::Error

§

fn try_into_ext(self) -> Result<U, <T as TryIntoExt<U>>::Error>

Tries to perform the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more