Skip to main content

Shell

Struct Shell 

Source
pub struct Shell { /* private fields */ }
Expand description

The chrome shared by every authenticated page: the top-nav links and the signed-in operator. Built once by the auth guard and injected into request extensions, so page handlers render inside the same shell without each rebuilding it. Templates embed it as shell and base.html renders it.

A contributed screen takes it as Extension<Shell> and renders its own markup inside the chrome with Shell::page; Shell::t localizes its strings and Shell::csrf_token arms a form it builds by hand.

Implementations§

Source§

impl Shell

Source

pub fn icon(&self, name: &str) -> String

Inline SVG for a named icon from the framework’s set, for a template’s own chrome ({{ shell.icon("folder")|safe }}). An unknown name renders the missing mark.

Source

pub fn t(&self, source: &str) -> String

Localizes a source string in this request’s locale, falling back to the source itself. Templates call {{ shell.t("Save") }}.

Source

pub fn tt(&self, text: &Text) -> String

Localizes a prebuilt message (a t!/tn! value, a descriptor label, a flash) into this request’s locale.

Source

pub fn i18n(&self) -> &Translator

The request’s translator, for a field type that localizes strings of its own (a repeater’s sub-field labels) rather than only the label it is given.

Source

pub fn locale(&self) -> &str

The active locale (most specific in the chain), for <html lang>.

Source

pub fn base(&self) -> &str

The admin mount (/admin), for a link into the panel.

Source

pub fn csrf_token(&self) -> &str

This session’s request token, for a form a screen builds by hand: a hidden field named _csrf, placed first when the form uploads a file. An HTMX request carries it already.

Source

pub fn datetime(&self, utc: &str) -> String

A UTC timestamp as stored (RFC 3339), shown in this operator’s timezone. Text that does not parse is shown as it is.

Source

pub fn page(&self, title: &Text, body: Markup) -> Response

Renders body as a page in the admin chrome, headed by title. The body is a screen’s own markup, built from its templates through html::Markup::from_template.

Source

pub fn page_with(&self, head: PageHead, body: Markup) -> Response

A contributed page with a PageHead: the title, a way back and the actions beside it, then body inside the chrome.

Source

pub fn tf(&self, source: &str, args: &[(&'static str, i64)]) -> String

Localizes a source string with integer {name} arguments, for a template ({{ shell.tf("Page {n} of {m}", [("n", page), ("m", pages)]) }}). Nested-Text arguments are built in Rust with t! and rendered with tt.

Source

pub fn tfs(&self, source: &str, args: &[(&'static str, &str)]) -> String

Like Shell::tf, but with string {name} arguments, for a template ({{ shell.tfs("Signed in as {name}", [("name", user)]) }}).

Trait Implementations§

Source§

impl Clone for Shell

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl Freeze for Shell

§

impl RefUnwindSafe for Shell

§

impl Send for Shell

§

impl Sync for Shell

§

impl Unpin for Shell

§

impl UnsafeUnpin for Shell

§

impl UnwindSafe for Shell

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

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<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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