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