Struct warpgrapher::engine::EngineBuilder[][src]

pub struct EngineBuilder<RequestCtx = ()> where
    RequestCtx: RequestContext
{ /* fields omitted */ }

Implements the builder pattern for Warpgrapher engines

Examples



let config = Configuration::default();
let engine = Engine::<()>::new(config, NoDatabasePool {}).build()?;

Implementations

impl<RequestCtx> EngineBuilder<RequestCtx> where
    RequestCtx: RequestContext
[src]

pub fn with_resolvers(
    self,
    resolvers: Resolvers<RequestCtx>
) -> EngineBuilder<RequestCtx>
[src]

Adds resolvers to the engine

Examples


let resolvers = Resolvers::<()>::new();

let config = Configuration::default();

let mut engine = Engine::<()>::new(config, NoDatabasePool {})
    .with_resolvers(resolvers)
    .build()?;

pub fn with_validators(
    self,
    validators: Validators
) -> EngineBuilder<RequestCtx>
[src]

Adds validators to the engine

Examples


let validators = Validators::new();

let config = Configuration::default();

let mut engine = Engine::<()>::new(config, NoDatabasePool {})
    .with_validators(validators)
    .build()?;

pub fn with_event_handlers(
    self,
    event_handlers: EventHandlerBag<RequestCtx>
) -> EngineBuilder<RequestCtx>
[src]

Adds event handlers to the engine

Examples


let event_handlers = EventHandlerBag::<()>::new();

let config = Configuration::default();

let mut engine = Engine::<()>::new(config, NoDatabasePool {})
    .with_event_handlers(event_handlers)
    .build()?;

pub fn with_version(self, version: String) -> EngineBuilder<RequestCtx>[src]

Sets the version of the app

Examples


let config = Configuration::default();

let mut engine = Engine::<()>::new(config, NoDatabasePool {})
    .with_version("1.0.0".to_string())
    .build()?;

pub fn build(self) -> Result<Engine<RequestCtx>, Error>[src]

Builds a configured Engine including generating the data model, CRUD operations, and custom endpoints from the Configuration c. Returns the Engine.

Errors

Returns an Error variant ConfigItemDuplicated if there is more than one type or more than one endpoint that use the same name.

Returns an Error variant ConfigItemReserved if a named configuration item, such as an endpoint or type, has a name that is a reserved word, such as “ID” or the name of a GraphQL scalar type.

Returns an Error variant SchemaItemNotFound if there is an error in the configuration, specifically if the configuration of type A references type B, but type B cannot be found.

Returns an Error variant ResolverNotFound if there is a resolver defined in the configuration for which no ResolverFunc has been added to the Resolvers collection applied to the EngineBuilder with with_resolvers.

Returns an Error variant ValidatorNotFound if there is a validator defined in the configuration for which no ValidatorFunc has been added to the Validators collection applied to the EngineBuilder with with_validators.

Returns an

Examples


let config = Configuration::new(1, Vec::new(), Vec::new());

let mut engine = Engine::<()>::new(config, NoDatabasePool {}).build()?;

Trait Implementations

impl<RequestCtx: Clone> Clone for EngineBuilder<RequestCtx> where
    RequestCtx: RequestContext
[src]

impl Debug for EngineBuilder[src]

Auto Trait Implementations

impl<RequestCtx> RefUnwindSafe for EngineBuilder<RequestCtx> where
    <<RequestCtx as RequestContext>::DBEndpointType as DatabaseEndpoint>::PoolType: RefUnwindSafe

impl<RequestCtx> Send for EngineBuilder<RequestCtx>

impl<RequestCtx> Sync for EngineBuilder<RequestCtx>

impl<RequestCtx> Unpin for EngineBuilder<RequestCtx> where
    <<RequestCtx as RequestContext>::DBEndpointType as DatabaseEndpoint>::PoolType: Unpin

impl<RequestCtx> UnwindSafe for EngineBuilder<RequestCtx> where
    <<RequestCtx as RequestContext>::DBEndpointType as DatabaseEndpoint>::PoolType: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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