VariadicRoutes

Struct VariadicRoutes 

Source
pub struct VariadicRoutes<State>
where State: Send + Sync + 'static,
{ pub routes: Vec<Box<dyn for<'r> Fn(Route<'r, Arc<State>>)>>, /* private fields */ }
Expand description

Variadic-argument route versioning is implemented via this struct for From<T> with Single-argument, Tuple, and Vec types.

This allows preroll::main! and preroll::test_utils::create_client to version routes automatically based on their position in the arguments list.

Examples of what can be provided to any function that accepts impl Into<VariadicRoutes>, assuming all arguments are Fn(Route<'r, Arc<State>>):

  • A single routes function argument.
    • Will become /api/v1.
    • E.g. routes_v1 or routes_setup.
  • A Tuple of 1 to 4 routes functions.
    • Will become /api/v1 through /api/v4.
    • E.g. (routes_v1, routes_v2, routes_v3)
  • A Vec of boxed routes functions.
    • If you need this you may want to reconsider your architecture!
    • Will become /api/v{N} where N is the index + 1.
    • E.g. vec![Box::new(routes_v1), Box::new(routes_v2)]

Fields§

§routes: Vec<Box<dyn for<'r> Fn(Route<'r, Arc<State>>)>>

Trait Implementations§

Source§

impl<State, RoutesFn> From<(RoutesFn,)> for VariadicRoutes<State>
where State: Send + Sync + 'static, RoutesFn: for<'r> Fn(Route<'r, Arc<State>>) + Debug + 'static,

Source§

fn from(routes: (RoutesFn,)) -> Self

Converts to this type from the input type.
Source§

impl<State, RoutesFn1, RoutesFn2> From<(RoutesFn1, RoutesFn2)> for VariadicRoutes<State>
where State: Send + Sync + 'static, RoutesFn1: for<'r> Fn(Route<'r, Arc<State>>) + 'static, RoutesFn2: for<'r> Fn(Route<'r, Arc<State>>) + 'static,

Source§

fn from(routes: (RoutesFn1, RoutesFn2)) -> Self

Converts to this type from the input type.
Source§

impl<State, RoutesFn1, RoutesFn2, RoutesFn3> From<(RoutesFn1, RoutesFn2, RoutesFn3)> for VariadicRoutes<State>
where State: Send + Sync + 'static, RoutesFn1: for<'r> Fn(Route<'r, Arc<State>>) + 'static, RoutesFn2: for<'r> Fn(Route<'r, Arc<State>>) + 'static, RoutesFn3: for<'r> Fn(Route<'r, Arc<State>>) + 'static,

Source§

fn from(routes: (RoutesFn1, RoutesFn2, RoutesFn3)) -> Self

Converts to this type from the input type.
Source§

impl<State, RoutesFn1, RoutesFn2, RoutesFn3, RoutesFn4> From<(RoutesFn1, RoutesFn2, RoutesFn3, RoutesFn4)> for VariadicRoutes<State>
where State: Send + Sync + 'static, RoutesFn1: for<'r> Fn(Route<'r, Arc<State>>) + 'static, RoutesFn2: for<'r> Fn(Route<'r, Arc<State>>) + 'static, RoutesFn3: for<'r> Fn(Route<'r, Arc<State>>) + 'static, RoutesFn4: for<'r> Fn(Route<'r, Arc<State>>) + 'static,

Source§

fn from(routes: (RoutesFn1, RoutesFn2, RoutesFn3, RoutesFn4)) -> Self

Converts to this type from the input type.
Source§

impl<State, RoutesFn> From<RoutesFn> for VariadicRoutes<State>
where State: Send + Sync + 'static, RoutesFn: for<'r> Fn(Route<'r, Arc<State>>) + 'static,

Source§

fn from(routes: RoutesFn) -> Self

Converts to this type from the input type.
Source§

impl<State> From<Vec<Box<dyn for<'r> Fn(Route<'r, Arc<State>>)>>> for VariadicRoutes<State>
where State: Send + Sync + 'static,

Source§

fn from(routes: Vec<Box<dyn for<'r> Fn(Route<'r, Arc<State>>)>>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<State> Freeze for VariadicRoutes<State>

§

impl<State> !RefUnwindSafe for VariadicRoutes<State>

§

impl<State> !Send for VariadicRoutes<State>

§

impl<State> !Sync for VariadicRoutes<State>

§

impl<State> Unpin for VariadicRoutes<State>

§

impl<State> !UnwindSafe for VariadicRoutes<State>

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<D> OwoColorize for D

Source§

fn fg<'a, C>(&'a self) -> FgColorDisplay<'a, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<'a, C>(&'a self) -> BgColorDisplay<'a, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

Change the foreground color to black
Source§

fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

Change the foreground color to black
Source§

fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

Change the foreground color to red
Source§

fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

Change the foreground color to red
Source§

fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

Change the foreground color to green
Source§

fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

Change the foreground color to green
Source§

fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

Change the foreground color to yellow
Source§

fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

Change the foreground color to blue
Source§

fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the foreground color to magenta
Source§

fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the foreground color to purple
Source§

fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

Change the foreground color to cyan
Source§

fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

Change the foreground color to white
Source§

fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

Change the foreground color to white
Source§

fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

Change the foreground color to bright red
Source§

fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

Make the text bold
Source§

fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

Make the text dim
Source§

fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

Make the text italicized
Source§

fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

Make the text italicized
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

Swap the foreground and background colors
Source§

fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

Hide the text
Source§

fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

Cross out the text
Source§

fn color<'a, Color>( &'a self, color: Color, ) -> FgDynColorDisplay<'a, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<'a, Color>( &'a self, color: Color, ) -> BgDynColorDisplay<'a, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn truecolor<'a>( &'a self, r: u8, g: u8, b: u8, ) -> FgDynColorDisplay<'a, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor<'a>( &'a self, r: u8, g: u8, b: u8, ) -> BgDynColorDisplay<'a, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

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>,

Source§

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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,