Skip to main content

CompileRouteProgram

Trait CompileRouteProgram 

Source
pub trait CompileRouteProgram<Compiler> {
    type Route;

    // Required method
    fn compile_route(self, compiler: &Compiler) -> Self::Route;
}
Expand description

Compiles a first-order route program with a concrete interpreter.

Required Associated Types§

Source

type Route

The route representation produced by Compiler.

Required Methods§

Source

fn compile_route(self, compiler: &Compiler) -> Self::Route

Folds the complete first-order program through compiler.

Endpoint construction happens here, after composition has preserved all handler, input, argument, and output-transform types.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<Compiler, Left, Right, Route> CompileRouteProgram<Compiler> for Merge<Left, Right>
where Compiler: RouteAlg<Route = Route>, Left: CompileRouteProgram<Compiler, Route = Route>, Right: CompileRouteProgram<Compiler, Route = Route>,

Source§

type Route = Route

Source§

impl<Compiler, Method, Handler, Inputs, Args, Transform, Handle> CompileRouteProgram<Compiler> for Endpoint<Method, Handler, Inputs, Args, Transform>
where Compiler: HttpApiAlg + HandlerContextAlg<Handler::Context, Handle = Handle> + HandlerEndpointAlg<Handle, Inputs::Inputs, Args, Transform, Handler::Output>, Method: HttpMethodAlg<Compiler>, Handler: OperationAlg + ApplyAlg<Handle, Args> + Send + Sync + 'static, Inputs: InterpretInputsAlg<Compiler>,

Source§

type Route = <Compiler as RouteAlg>::Route

Source§

impl<Compiler, Program, Route> CompileRouteProgram<Compiler> for Nest<Program>
where Compiler: HttpRouteAlg<Route = Route>, Program: CompileRouteProgram<Compiler, Route = Route>,

Source§

type Route = Route

Source§

impl<Compiler, Program> CompileRouteProgram<Compiler> for Named<Program>
where Program: HttpProgramAlg<Compiler>,

Source§

type Route = <Program as HttpProgramAlg<Compiler>>::Route

Source§

impl<Compiler> CompileRouteProgram<Compiler> for Empty
where Compiler: RouteAlg,

Source§

type Route = <Compiler as RouteAlg>::Route