| Crates.io | decrust-promac-runtime |
| lib.rs | decrust-promac-runtime |
| version | 1.2.6 |
| created_at | 2025-05-25 19:15:20.329858+00 |
| updated_at | 2025-05-25 19:30:26.305526+00 |
| description | The ultimate all-in-one error handling framework for Rust |
| homepage | |
| repository | https://github.com/arcmoonstudios/decrust |
| max_upload_size | |
| id | 1688615 |
| size | 41,852 |
Runtime Support for Decrust Procedural Macros
Decrust-Promac-Runtime provides the essential runtime support and utilities needed by the Decrust procedural macros. This crate contains the runtime components that enable the decrust! macro to perform its advanced error handling and autocorrection capabilities.
This crate is typically used indirectly through the main decrust crate, but can be used directly for advanced scenarios:
use decrust_promac_runtime::{DecrustMacroResult, DecrustMacroError};
// Runtime support for macro-generated code
fn handle_macro_result<T>(result: DecrustMacroResult<T>) -> Result<T, DecrustMacroError> {
match result {
DecrustMacroResult::Success(value) => Ok(value),
DecrustMacroResult::Error(error) => Err(error),
DecrustMacroResult::Retry { attempt, max_attempts } => {
if attempt < max_attempts {
// Retry logic handled by macro expansion
todo!("Retry handled by macro")
} else {
Err(DecrustMacroError::MaxRetriesExceeded)
}
}
}
}
Specialized result types that support the advanced features of the decrust! macro.
use decrust_promac_runtime::{DecrustMacroResult, DecrustMacroError};
// Result type that supports retry logic
pub enum DecrustMacroResult<T> {
Success(T),
Error(DecrustMacroError),
Retry { attempt: u32, max_attempts: u32 },
}
Error types specifically designed for macro-generated code with enhanced debugging information.
use decrust_promac_runtime::DecrustMacroError;
// Specialized error types for macro operations
pub enum DecrustMacroError {
CompilationError(String),
RuntimeError(String),
MaxRetriesExceeded,
CircuitBreakerOpen,
ValidationFailed(String),
}
Helper functions and utilities used by the procedural macros during code generation.
use decrust_promac_runtime::utils::{generate_error_context, format_suggestion};
// Utilities for macro-generated code
let context = generate_error_context("operation_name", "additional_info");
let suggestion = format_suggestion("Try checking the input parameters");
This crate provides runtime support for:
This crate is automatically included when you use the main decrust crate:
[dependencies]
decrust = "1.2" # Includes decrust-promac-runtime automatically
For direct usage (advanced scenarios):
[dependencies]
decrust-promac-runtime = "1.2"
use decrust_promac_runtime::{DecrustMacroResult, handle_with_context};
// This is typically generated by the decrust! macro
fn generated_operation() -> DecrustMacroResult<String> {
let result = risky_operation();
handle_with_context(result, "operation_context")
}
use decrust_promac_runtime::{DecrustMacroError, create_runtime_context};
// Custom integration with macro runtime
fn custom_handler() -> Result<(), DecrustMacroError> {
let context = create_runtime_context("custom_operation");
// Your custom logic here
Ok(())
}
This project is licensed under the Business Source License 1.1 (BSL 1.1).
Change Date: 2029-05-25 | Change License: GNU GPL v3
Made with ❤️ by ArcMoon Studios