Skip to main content

Crate anycms_core

Crate anycms_core 

Source
Expand description

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

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

use anycms_core::{ApiResult, ApiError};

fn handle_error() -> ApiResult<String> {
    ApiError::not_found("Resource not found").into()
}

§Validation Errors

use anycms_core::{ApiResult, FieldError};

fn validate() -> ApiResult<String> {
    ApiResult::validation_errors(vec![
        FieldError::new("email", "invalid format"),
    ])
}

§Request Tracing

use anycms_core::ApiResult;

fn handler() -> ApiResult<String> {
    ApiResult::ok().with_trace_id("req-abc123")
}

Modules§

actix
Framework-specific integrations

Structs§

ApiError
Standard API error with error code and message
ApiResult
API response wrapper with unified structure
FieldError
A single field-level validation error
ResultPagination
Pagination metadata for list responses

Enums§

AppError
Generic application error that can represent any error type
ErrorCode
Standard error codes for API responses
ResponseData
Response data wrapper that can hold either a single value or a list

Traits§

IntoApiResult
Helper trait for converting Results to ApiResults with custom error handling

Type Aliases§

AnyhowResult
Type alias for Result with anyhow::Error
DefaultResult
Type alias for standard Result with Box<dyn Error>
EmptyResult
API result without any data payload