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 injectable;
17pub mod logging;
18pub mod module;
19pub mod pipeline;
20pub mod provider;
21pub mod request;
22pub mod resource_service;
23pub mod response;
24pub mod route_builder;
25pub mod store;
26pub mod validation;
27
28pub use auth::{AuthIdentity, AuthUser, BearerToken, OptionalAuthUser};
29pub use container::{Container, ContainerError};
30pub use documentation::{
31    openapi_array_schema_for, openapi_nullable_schema_for, openapi_schema_components_for,
32    openapi_schema_for, DocumentedController, OpenApiSchema, OpenApiSchemaComponent,
33    RouteDocumentation, RouteResponseDocumentation,
34};
35pub use error::HttpException;
36pub use http_ext::{OptionHttpExt, ResultHttpExt};
37pub use inject::Inject;
38pub use injectable::{register_injectable, Injectable, IntoInjectableResult};
39pub use logging::{framework_log, framework_log_event};
40pub use module::{
41    collect_module_graph, collect_module_route_docs, initialize_module_graph,
42    initialize_module_runtime, ControllerBasePath, ControllerDefinition, DynamicModuleBuilder,
43    InitializedModule, LifecycleHook, ModuleDefinition, ModuleGraphEntry, ModuleGraphReport,
44    ModuleRef,
45};
46pub use pipeline::{
47    apply_exception_filters, execute_pipeline, run_guards, ExceptionFilter, Guard, Interceptor,
48    NextFn, NextFuture, RequestContext, RequireAuthenticationGuard, RoleRequirementsGuard,
49};
50pub use provider::{register_provider, Provider, RegisterProvider};
51pub use request::ValidatedBody;
52pub use request::{
53    Body, Cookies, Decorated, Headers, Param, Pipe, PipedBody, PipedParam, PipedQuery, Query,
54    RequestDecorator, RequestId,
55};
56pub use resource_service::{ResourceError, ResourceService};
57pub use response::{
58    ApiEnvelopeResult, ApiSerializedResult, ResponseEnvelope, ResponseSerializer, Serialized,
59};
60pub use route_builder::RouteBuilder;
61pub use store::{Identifiable, InMemoryStore};
62pub use validation::{Validate, ValidationErrors, ValidationIssue};
63
64pub type ApiResult<T> = Result<axum::Json<T>, HttpException>;
65pub type List<T> = Vec<T>;