pub struct SiteBranding {
pub app_name: String,
pub app_tagline: Option<String>,
pub support_email: Option<String>,
pub public_url: Option<String>,
pub show_powered_by: bool,
pub site_title: String,
pub site_header: String,
pub index_title: String,
pub footer_copyright: String,
pub domain: String,
}Expand description
Per-project admin branding — the user-facing identity layer.
Production deployments MUST set SiteBranding::app_name (or
use the Admin::app_name builder) — the framework name
RustIO should never appear as the visible product identity for
end users. RustIO is the vendor; the deployed application is
what users see in their inbox, on the login page, and in the
password-reset flow.
Field roles:
app_name— primary user-facing product identity. Used by every framework-emitted surface that reaches end users: email subjects + headers, recovery pages, admin chrome footer, audit summaries.app_tagline— optional secondary line. Renders as the descriptor under the brand wordmark in recovery emails.Nonefalls back to the framework’s generic “Account security notification” caption.support_email— optional contact surfaced in the recovery email footer (“If you didn’t request this, contact <support@…>”).Noneomits the line.public_url— canonical public URL used when composing reset links if the request’sHost/X-Forwarded-Hostderivation is unreliable.Nonefalls back to header-derived URLs.show_powered_by— opt-in “Powered by RustIO” credit in the chrome footer + email footer. Defaults tofalse; the framework name stays invisible to end users unless the project explicitly enables this.
Legacy fields (site_title /
site_header / etc.) predate this
architecture and are still honoured for backwards compatibility,
but their defaults were renamed away from “RustIO administration”
so a zero-config build no longer leaks the framework name. New
code should use the app_* fields exclusively.
Fields§
§app_name: StringPrimary user-facing product identity. Visible in: page chrome (topbar, footer), email subjects + headers, audit summaries, recovery pages, login screen.
app_tagline: Option<String>Optional secondary line for use under the brand wordmark in
emails / auth surfaces. Examples: “Operational library
management”, “Health-system administration”. None falls
back to “Account security notification” in recovery emails.
support_email: Option<String>Optional support contact surfaced in recovery email footer.
public_url: Option<String>Optional canonical public URL — e.g. https://library.example.com.
Used as the reset-link base when Host header isn’t trustworthy.
show_powered_by: booltrue → renders a small, low-contrast “Powered by RustIO”
line in the admin chrome footer and at the very bottom of
framework emails. Default: false (framework name invisible).
site_title: String§site_header: String§index_title: String§domain: StringDNS-shape string available to project handlers; not surfaced in any framework template.
Trait Implementations§
Source§impl Clone for SiteBranding
impl Clone for SiteBranding
Source§fn clone(&self) -> SiteBranding
fn clone(&self) -> SiteBranding
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 SiteBranding
impl Debug for SiteBranding
Auto Trait Implementations§
impl Freeze for SiteBranding
impl RefUnwindSafe for SiteBranding
impl Send for SiteBranding
impl Sync for SiteBranding
impl Unpin for SiteBranding
impl UnsafeUnpin for SiteBranding
impl UnwindSafe for SiteBranding
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 more