anycms-core 0.4.0

A unified API response library supporting multiple Rust web frameworks
Documentation
//! anycms-core
//!
//! A unified API response library supporting multiple Rust web frameworks.
//!
//! ## Features
//! - `actix` (default): Support for actix-web framework
//! - `axum`: Support for axum framework
//! - `full`: Enable all framework integrations
//!
//! ## Basic Usage
//! ```rust
//! use anycms_core::ApiResult;
//! use serde::Serialize;
//!
//! #[derive(Serialize)]
//! struct User {
//!     id: u32,
//!     name: String,
//! }
//!
//! fn handle_request() -> ApiResult<User> {
//!     let user = User { id: 1, name: "Alice".to_string() };
//!     ApiResult::value(user)
//! }
//! ```
//!
//! ## Error Handling
//! ```rust
//! use anycms_core::{ApiResult, ApiError};
//!
//! fn handle_error() -> ApiResult<String> {
//!     ApiError::not_found("Resource not found").into()
//! }
//! ```

mod pagination;
mod result;

// Framework-specific implementations
mod frameworks;

// Core exports (always available)
pub use pagination::ResultPagination;
pub use result::{
    ApiResult, DefaultResult, AnyhowResult, EmptyResult,
    ErrorCode, ApiError, AppError, IntoApiResult,
    ResponseData,
};

// Framework-specific exports (available only when corresponding feature is enabled)
#[cfg(feature = "actix")]
pub use frameworks::actix;

#[cfg(feature = "axum")]
pub use frameworks::axum;