pub struct Admin { /* private fields */ }Expand description
Builder that collects admin models and mounts them with a shared
/admin index page.
Implementations§
Source§impl Admin
impl Admin
Sourcepub fn new() -> Self
pub fn new() -> Self
Examples found in repository?
examples/admin_demo.rs (line 40)
22async fn main() -> std::io::Result<()> {
23 let db = Db::memory().await.expect("db connect");
24 auth::ensure_core_tables(&db)
25 .await
26 .expect("create auth tables");
27
28 auth::user::create(&db, "admin@example.com", "admin", "admin")
29 .await
30 .expect("seed admin user");
31
32 seed_demo_data(&db).await;
33
34 let router = with_defaults(Router::new()).wrap(authenticate(db.clone()));
35 // No `.model::<T>()` calls: the new engine uses its own
36 // `AdminUiModel` registry (Users + Orders are wired in by
37 // `Admin::register`). The legacy AdminModel + macro path is
38 // intentionally not exercised here so there is exactly one
39 // admin surface in the demo.
40 let router = Admin::new().register(router, &db);
41
42 let addr: SocketAddr = ([127, 0, 0, 1], 3000).into();
43 eprintln!("admin demo: open http://{addr}/admin and sign in as admin@example.com / admin");
44 Server::bind(addr).serve_router(router).await
45}Sourcepub fn model<T: AdminModel>(self) -> Self
pub fn model<T: AdminModel>(self) -> Self
Register a user-facing model on this admin.
pub fn is_empty(&self) -> bool
Sourcepub fn entries(&self) -> &[AdminEntry]
pub fn entries(&self) -> &[AdminEntry]
All entries, including core models. Used by the schema exporter;
iterate with .iter().filter(|e| !e.core) when you want only
user-facing models.
Sourcepub fn register(self, router: Router, db: &Db) -> Router
pub fn register(self, router: Router, db: &Db) -> Router
Mount the admin onto a router.
Examples found in repository?
examples/admin_demo.rs (line 40)
22async fn main() -> std::io::Result<()> {
23 let db = Db::memory().await.expect("db connect");
24 auth::ensure_core_tables(&db)
25 .await
26 .expect("create auth tables");
27
28 auth::user::create(&db, "admin@example.com", "admin", "admin")
29 .await
30 .expect("seed admin user");
31
32 seed_demo_data(&db).await;
33
34 let router = with_defaults(Router::new()).wrap(authenticate(db.clone()));
35 // No `.model::<T>()` calls: the new engine uses its own
36 // `AdminUiModel` registry (Users + Orders are wired in by
37 // `Admin::register`). The legacy AdminModel + macro path is
38 // intentionally not exercised here so there is exactly one
39 // admin surface in the demo.
40 let router = Admin::new().register(router, &db);
41
42 let addr: SocketAddr = ([127, 0, 0, 1], 3000).into();
43 eprintln!("admin demo: open http://{addr}/admin and sign in as admin@example.com / admin");
44 Server::bind(addr).serve_router(router).await
45}Trait Implementations§
Auto Trait Implementations§
impl Freeze for Admin
impl !RefUnwindSafe for Admin
impl Send for Admin
impl Sync for Admin
impl Unpin for Admin
impl UnsafeUnpin for Admin
impl !UnwindSafe for Admin
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
Mutably borrows from an owned value. Read more
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>
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 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>
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