pub struct OpenApiPlugin { /* private fields */ }Expand description
The OpenAPI plugin.
Implementations§
Source§impl OpenApiPlugin
impl OpenApiPlugin
pub fn new() -> Self
Sourcepub fn at(self, path: &str) -> Self
pub fn at(self, path: &str) -> Self
Mount the JSON + UI under a different base. Trailing slashes
are normalised so both .at("/api/docs") and .at("/api/docs/")
register the same routes.
Sourcepub fn description(self, s: impl Into<String>) -> Self
pub fn description(self, s: impl Into<String>) -> Self
Set info.description in the emitted spec. Optional —
omitted from the JSON when unset. Markdown is permitted (per
OpenAPI 3.0.3); Swagger UI renders it above the operations
list, so this is the place to document API-wide auth, rate
limiting, conventions, etc.
Trait Implementations§
Source§impl Clone for OpenApiPlugin
impl Clone for OpenApiPlugin
Source§fn clone(&self) -> OpenApiPlugin
fn clone(&self) -> OpenApiPlugin
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OpenApiPlugin
impl Debug for OpenApiPlugin
Source§impl Default for OpenApiPlugin
impl Default for OpenApiPlugin
Source§impl Plugin for OpenApiPlugin
impl Plugin for OpenApiPlugin
Source§fn name(&self) -> &'static str
fn name(&self) -> &'static str
migrations/. Plugin names live in the same namespace as
migrate::APP_PLUGIN_NAME ("app"), so user crates must not
pick the name "app".Source§fn dependencies(&self) -> &'static [&'static str]
fn dependencies(&self) -> &'static [&'static str]
App::builder() topological sort uses this; cycles surface as
BuildError::PluginCycle. The default is no dependencies.Source§fn routes(&self) -> Router
fn routes(&self) -> Router
AppBuilder::routes(). Plugins
choose their own path prefixes (spec 02 §“What a plugin can
contribute”: routes are flat, not auto-prefixed).Source§fn models(&self) -> Vec<ModelMeta>
fn models(&self) -> Vec<ModelMeta>
makemigrations. Read moreSource§fn route_paths(&self) -> Vec<RouteSpec>
fn route_paths(&self) -> Vec<RouteSpec>
routes used for surfacing route lists outside the request
flow (currently: the dev-mode default 404 page). axum doesn’t
expose its internal route table, so plugins report what they
declare here; the framework treats this as informational only
— not a source of truth for routing. Read moreSource§fn openapi_paths(&self) -> Vec<(String, Value)>
fn openapi_paths(&self) -> Vec<(String, Value)>
Vec<(path, value)> where path is the URL template
(/api/auth/login, /api/foo/{id}) and value is the
matching OpenAPI 3.0 Path Item Object serialised as
a serde_json::Value. Read moreSource§fn system_checks(&self) -> Vec<SystemCheck>
fn system_checks(&self) -> Vec<SystemCheck>
App::build() alongside the framework’s built-in checks.
Severity::Error blocks boot; Severity::Warning logs and
continues.Source§fn provides_storage(&self) -> bool
fn provides_storage(&self) -> bool
true if this plugin registers a Storage
backend (e.g. StoragePlugin, which calls
crate::storage::set_storage in Plugin::on_ready). Read moreSource§fn database(&self) -> Option<&'static str>
fn database(&self) -> Option<&'static str>
None to use the
"default" pool (the same one umbral::db::pool() returns). Read moreSource§fn templates_dirs(&self) -> Vec<PathBuf>
fn templates_dirs(&self) -> Vec<PathBuf>
Source§fn template_registrars(
&self,
) -> Vec<Box<dyn Fn(&mut Environment<'static>) + Sync + Send>>
fn template_registrars( &self, ) -> Vec<Box<dyn Fn(&mut Environment<'static>) + Sync + Send>>
{% load %}-able template library). Read moreSource§fn wrap_router(&self, router: Router) -> Router
fn wrap_router(&self, router: Router) -> Router
Source§fn middleware(&self) -> Vec<Arc<dyn Middleware>>
fn middleware(&self) -> Vec<Arc<dyn Middleware>>
Source§fn static_files(&self) -> Vec<StaticFile>
fn static_files(&self) -> Vec<StaticFile>
Source§fn static_dirs(&self) -> Vec<StaticDir>
fn static_dirs(&self) -> Vec<StaticDir>
Source§fn static_root_dirs(&self) -> Vec<PathBuf>
fn static_root_dirs(&self) -> Vec<PathBuf>
static_url — with
no namespace segment. Read moreSource§fn commands(&self) -> Vec<Box<dyn PluginCommand>>
fn commands(&self) -> Vec<Box<dyn PluginCommand>>
Source§fn api_endpoints(&self) -> Vec<ApiEndpoint>
fn api_endpoints(&self) -> Vec<ApiEndpoint>
Source§fn on_ready(
&self,
_ctx: &AppContext,
) -> Result<(), Box<dyn Error + Sync + Send>>
fn on_ready( &self, _ctx: &AppContext, ) -> Result<(), Box<dyn Error + Sync + Send>>
ctx.runtime() when the runtime handle lands.Auto Trait Implementations§
impl Freeze for OpenApiPlugin
impl RefUnwindSafe for OpenApiPlugin
impl Send for OpenApiPlugin
impl Sync for OpenApiPlugin
impl Unpin for OpenApiPlugin
impl UnsafeUnpin for OpenApiPlugin
impl UnwindSafe for OpenApiPlugin
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);