Skip to main content

adminx_core/
lib.rs

1// adminx-core/src/lib.rs
2//
3// Framework-neutral core of the adminx admin-panel framework. Contains no web
4// framework and no database dependency: it defines the `Resource` trait, the
5// `Storage` abstraction, the registry, and neutral request/response types.
6//
7// Web adapters (adminx-actix, adminx-axum) translate their framework's
8// request/response to/from `ReqCtx`/`ApiResponse`. Storage adapters
9// (adminx-seaorm, adminx-mongo) implement `Storage`.
10
11pub mod actions;
12pub mod auth;
13pub mod authz;
14pub mod csrf;
15pub mod error;
16pub mod export;
17pub mod filters;
18pub mod menu;
19pub mod mfa;
20pub mod ratelimit;
21pub mod registry;
22pub mod request;
23pub mod resource;
24pub mod response;
25pub mod storage;
26pub mod ui;
27
28pub use actions::{ActionFuture, ActionHandler, CustomAction};
29pub use auth::AuthConfig;
30pub use authz::{authorizer, set_authorizer, Action, Authorizer};
31pub use error::CoreError;
32pub use filters::{FilterField, FilterKind, FilterOption};
33pub use menu::{MenuAction, MenuItem};
34pub use registry::{all_resources, get_registered_menus, register_resource};
35pub use request::{Claims, ReqCtx};
36pub use resource::Resource;
37pub use response::{ApiBody, ApiResponse};
38pub use storage::{
39    seed, set_storage, storage, CreateOutcome, ListPage, QueryOptions, Storage, StorageError,
40};
41
42pub const VERSION: &str = env!("CARGO_PKG_VERSION");
43
44/// Common imports for defining resources and wiring an app.
45pub mod prelude {
46    pub use crate::actions::{ActionFuture, CustomAction};
47    pub use crate::auth::{configure as configure_auth, create_admin, AuthConfig};
48    pub use crate::authz::{set_authorizer, Action, Authorizer};
49    pub use crate::error::CoreError;
50    pub use crate::filters::{FilterField, FilterKind, FilterOption};
51    pub use crate::registry::{all_resources, register_resource};
52    pub use crate::request::{Claims, ReqCtx};
53    pub use crate::resource::Resource;
54    pub use crate::response::{ApiBody, ApiResponse};
55    pub use crate::storage::{seed, set_storage, storage, QueryOptions, Storage};
56}