pub struct MultiContextBuilder { /* private fields */ }
Expand description

Contains methods for building a multi-context.

Use this builder if you need to construct a context that has multiple kinds, each representing their own Context. Otherwise, use ContextBuilder.

Obtain an instance of the builder by calling MultiContextBuilder::new; then, call MultiContextBuilder::add_context to add a kind. MultiContextBuilder setters return a reference the same builder, so they can be chained together.

Implementations§

source§

impl MultiContextBuilder

source

pub fn new() -> Self

Create a new multi-context builder. An empty builder cannot create a valid Context; you must add one or more kinds via MultiContextBuilder::add_context.

If you already have a list of contexts, you can instead use MultiContextBuilder::of.

source

pub fn of(contexts: Vec<Context>) -> Self

Create a new multi-context builder from the given list of contexts.

source

pub fn add_context(&mut self, context: Context) -> &mut Self

Adds a context to the builder.

It is invalid to add more than one context of the same Kind. This error is detected when you call MultiContextBuilder::build.

If context is a multi-context, this is equivalent to adding each individual context.

source

pub fn build(&self) -> Result<Context, String>

Creates a context from the builder’s current properties.

The context is immutable and will not be affected by any subsequent actions on the MultiContextBuilder.

It is possible for a MultiContextBuilder to represent an invalid state. In those situations, an Err type will be returned.

If only one context was added to the builder, this method returns that context.

Trait Implementations§

source§

impl Default for MultiContextBuilder

source§

fn default() -> Self

Creates an empty multi-context builder. In this state, a context must be added in order to build successfully.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where 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.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where 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 T
where 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.