Skip to main content

nestforge_core/
lib.rs

1/**
2* This is the entry file for nestforge-core.
3* - DI container
4* - module traits
5* - controller traits
6* - framework error types   
7* - DI helpers
8* - In memory store
9*/
10pub mod auth;
11pub mod container;
12pub mod documentation;
13pub mod error;
14pub mod http_ext;
15pub mod inject;
16pub mod logging;
17pub mod module;
18pub mod pipeline;
19pub mod provider;
20pub mod request;
21pub mod resource_service;
22pub mod response;
23pub mod route_builder;
24pub mod store;
25pub mod validation;
26
27pub use auth::{AuthIdentity, AuthUser, BearerToken, OptionalAuthUser};
28pub use container::{Container, ContainerError};
29pub use documentation::{
30    openapi_array_schema_for, openapi_nullable_schema_for, openapi_schema_components_for,
31    openapi_schema_for, DocumentedController, OpenApiSchema, OpenApiSchemaComponent,
32    RouteDocumentation, RouteResponseDocumentation,
33};
34pub use error::HttpException;
35pub use http_ext::{OptionHttpExt, ResultHttpExt};
36pub use inject::Inject;
37pub use logging::{framework_log, framework_log_event};
38pub use module::{
39    collect_module_graph, collect_module_route_docs, initialize_module_graph,
40    initialize_module_runtime, ControllerBasePath, ControllerDefinition, DynamicModuleBuilder,
41    InitializedModule, LifecycleHook, ModuleDefinition, ModuleGraphEntry, ModuleGraphReport,
42    ModuleRef,
43};
44pub use pipeline::{
45    apply_exception_filters, execute_pipeline, run_guards, ExceptionFilter, Guard, Interceptor,
46    NextFn, NextFuture, RequestContext, RequireAuthenticationGuard, RoleRequirementsGuard,
47};
48pub use provider::{register_provider, Provider, RegisterProvider};
49pub use request::ValidatedBody;
50pub use request::{
51    Body, Cookies, Decorated, Headers, Param, Pipe, PipedBody, PipedParam, PipedQuery, Query,
52    RequestDecorator, RequestId,
53};
54pub use resource_service::{ResourceError, ResourceService};
55pub use response::{
56    ApiEnvelopeResult, ApiSerializedResult, ResponseEnvelope, ResponseSerializer, Serialized,
57};
58pub use route_builder::RouteBuilder;
59pub use store::{Identifiable, InMemoryStore};
60pub use validation::{Validate, ValidationErrors, ValidationIssue};
61
62pub type ApiResult<T> = Result<axum::Json<T>, HttpException>;
63pub type List<T> = Vec<T>;