12 releases (4 breaking)
new 0.5.0 | Feb 20, 2025 |
---|---|
0.4.1 | Feb 18, 2025 |
0.4.0 | Dec 19, 2024 |
0.3.1 | Dec 1, 2024 |
0.1.1 | Oct 22, 2024 |
#20 in #carbon
189 downloads per month
Used in 3 crates
33KB
244 lines
Carbon Proc Macros
carbon-proc-macros
is a collection of procedural macros designed to
simplify and enhance Rust-based development for Solana programs using the
Carbon framework. This crate provides macros for generating
deserialization implementations, instruction decoders, and type conversions.
Overview
The macros in this crate are intended to streamline common patterns
encountered when working with Carbon, particularly around deserialization,
instruction decoding, and structuring custom types. By leveraging
carbon-proc-macros
, you can reduce the amount of manual coding and ensure
consistent, performant handling of Solana-specific data structures.
Key Features
CarbonDeserialize
: Automatically implement theCarbonDeserialize
trait for structs and enums, enabling Borsh-based deserialization with optional discriminators for type validation.Instruction Decoder Collection
: Create and manage complex instruction decoders for multiple Solana programs, simplifying how instructions are parsed and categorized.InstructionType
Derivation: DeriveInstructionType
enums that mirror existing enum structures, providing a simplified, data-free version of each variant.
Usage
To use any of the provided macros, simply import the desired macro into your Rust program and apply it to the relevant struct or enum.
Notes
- This crate relies on the
borsh
library for serialization and deserialization, so ensure the relevant dependencies are included in your project. - The macros provided are optimized for use within the Carbon framework.
Contribution
Contributions are welcome! If you have ideas for improving or expanding the
functionality of carbon_macros
, please consider submitting a pull request
or opening an issue on the project’s GitHub repository.
Dependencies
~69MB
~1.5M SLoC