pub struct Layer { /* private fields */ }
Expand description
A named layer comprising a config bag
See the module docs for more documentation.
Implementations§
Source§impl Layer
impl Layer
Sourcepub fn freeze(self) -> FrozenLayer
pub fn freeze(self) -> FrozenLayer
Converts this layer into a frozen layer that can no longer be mutated.
Sourcepub fn with_name(self, name: impl Into<Cow<'static, str>>) -> Layer
pub fn with_name(self, name: impl Into<Cow<'static, str>>) -> Layer
Changes the name of this layer.
Sourcepub fn load<T>(&self) -> <<T as Storable>::Storer as Store>::ReturnedType<'_>where
T: Storable,
pub fn load<T>(&self) -> <<T as Storable>::Storer as Store>::ReturnedType<'_>where
T: Storable,
Load a storable item from the bag
Sourcepub fn store_put<T>(&mut self, item: T) -> &mut Layerwhere
T: Storable<Storer = StoreReplace<T>>,
pub fn store_put<T>(&mut self, item: T) -> &mut Layerwhere
T: Storable<Storer = StoreReplace<T>>,
Stores item
of type T
into the config bag, overriding a previous value of the same type
Sourcepub fn store_or_unset<T>(&mut self, item: Option<T>) -> &mut Layerwhere
T: Storable<Storer = StoreReplace<T>>,
pub fn store_or_unset<T>(&mut self, item: Option<T>) -> &mut Layerwhere
T: Storable<Storer = StoreReplace<T>>,
Stores item
of type T
into the config bag, overriding a previous value of the same type,
or unsets it by passing a None
Sourcepub fn store_append<T>(&mut self, item: T) -> &mut Layerwhere
T: Storable<Storer = StoreAppend<T>>,
pub fn store_append<T>(&mut self, item: T) -> &mut Layerwhere
T: Storable<Storer = StoreAppend<T>>,
This can only be used for types that use StoreAppend
use aws_smithy_types::config_bag::{ConfigBag, Layer, Storable, StoreAppend, StoreReplace};
let mut layer_1 = Layer::new("example");
#[derive(Debug, PartialEq, Eq)]
struct Interceptor(&'static str);
impl Storable for Interceptor {
type Storer = StoreAppend<Interceptor>;
}
layer_1.store_append(Interceptor("321"));
layer_1.store_append(Interceptor("654"));
let mut layer_2 = Layer::new("second layer");
layer_2.store_append(Interceptor("987"));
let bag = ConfigBag::of_layers(vec![layer_1, layer_2]);
assert_eq!(
bag.load::<Interceptor>().collect::<Vec<_>>(),
vec![&Interceptor("987"), &Interceptor("654"), &Interceptor("321")]
);
Sourcepub fn clear<T>(&mut self)where
T: Storable<Storer = StoreAppend<T>>,
pub fn clear<T>(&mut self)where
T: Storable<Storer = StoreAppend<T>>,
Clears the value of type T
from the config bag
This internally marks the item of type T
as cleared as opposed to wiping it out from the
config bag.
Trait Implementations§
Source§impl From<CloneableLayer> for Layer
impl From<CloneableLayer> for Layer
Source§fn from(cloneable_layer: CloneableLayer) -> Layer
fn from(cloneable_layer: CloneableLayer) -> Layer
Converts to this type from the input type.
Source§impl From<Layer> for FrozenLayer
impl From<Layer> for FrozenLayer
Source§fn from(layer: Layer) -> FrozenLayer
fn from(layer: Layer) -> FrozenLayer
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for Layer
impl !RefUnwindSafe for Layer
impl Send for Layer
impl Sync for Layer
impl Unpin for Layer
impl !UnwindSafe for Layer
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Creates a shared type from an unshared type.