Struct former::VectorSubformer
source · pub struct VectorSubformer<E, Container, Context, ContainerEnd>{ /* private fields */ }Expand description
A builder for constructing VectorLike containers, facilitating a fluent and flexible interface.
VectorSubformer leverages the VectorLike trait to enable the construction and manipulation
of vector-like containers in a builder pattern style, promoting readability and ease of use.
§Example
#[ derive( Debug, PartialEq, former::Former ) ]
pub struct StructWithVec
{
#[ subformer( former::VectorSubformer ) ]
vec : Vec< &'static str >,
}
let instance = StructWithVec::former()
.vec()
.push( "apple" )
.push( "banana" )
.end()
.form();
assert_eq!( instance, StructWithVec { vec: vec![ "apple", "banana" ] } );Implementations§
source§impl<E, Container, Context, ContainerEnd> VectorSubformer<E, Container, Context, ContainerEnd>
impl<E, Container, Context, ContainerEnd> VectorSubformer<E, Container, Context, ContainerEnd>
sourcepub fn new(
) -> VectorSubformer<E, Container, Container, impl ToSuperFormer<Container, Container>>
pub fn new( ) -> VectorSubformer<E, Container, Container, impl ToSuperFormer<Container, Container>>
Initializes a new VectorSubformer instance, starting with an empty container.
This function serves as the entry point for the builder pattern.
§Returns
A new instance of VectorSubformer with an empty internal container.
sourcepub fn begin(
context: Option<Context>,
container: Option<Container>,
on_end: ContainerEnd
) -> Self
pub fn begin( context: Option<Context>, container: Option<Container>, on_end: ContainerEnd ) -> Self
Begins the building process, optionally initializing with a context and container.
source§impl<E, Container, Context, ContainerEnd> VectorSubformer<E, Container, Context, ContainerEnd>
impl<E, Container, Context, ContainerEnd> VectorSubformer<E, Container, Context, ContainerEnd>
Trait Implementations§
source§impl<E: Debug, Container, Context: Debug, ContainerEnd> Debug for VectorSubformer<E, Container, Context, ContainerEnd>where
Container: VectorLike<E> + Default + Debug,
ContainerEnd: ToSuperFormer<Container, Context> + Debug,
impl<E: Debug, Container, Context: Debug, ContainerEnd> Debug for VectorSubformer<E, Container, Context, ContainerEnd>where
Container: VectorLike<E> + Default + Debug,
ContainerEnd: ToSuperFormer<Container, Context> + Debug,
source§impl<E: Default, Container, Context: Default, ContainerEnd> Default for VectorSubformer<E, Container, Context, ContainerEnd>where
Container: VectorLike<E> + Default + Default,
ContainerEnd: ToSuperFormer<Container, Context> + Default,
impl<E: Default, Container, Context: Default, ContainerEnd> Default for VectorSubformer<E, Container, Context, ContainerEnd>where
Container: VectorLike<E> + Default + Default,
ContainerEnd: ToSuperFormer<Container, Context> + Default,
source§fn default() -> VectorSubformer<E, Container, Context, ContainerEnd>
fn default() -> VectorSubformer<E, Container, Context, ContainerEnd>
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl<E, Container, Context, ContainerEnd> RefUnwindSafe for VectorSubformer<E, Container, Context, ContainerEnd>where
Container: RefUnwindSafe,
ContainerEnd: RefUnwindSafe,
Context: RefUnwindSafe,
E: RefUnwindSafe,
impl<E, Container, Context, ContainerEnd> Send for VectorSubformer<E, Container, Context, ContainerEnd>
impl<E, Container, Context, ContainerEnd> Sync for VectorSubformer<E, Container, Context, ContainerEnd>
impl<E, Container, Context, ContainerEnd> Unpin for VectorSubformer<E, Container, Context, ContainerEnd>
impl<E, Container, Context, ContainerEnd> UnwindSafe for VectorSubformer<E, Container, Context, ContainerEnd>
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