9 releases (1 stable)

1.0.0 Mar 31, 2020
1.0.0-rc.3 Mar 25, 2020
1.0.0-rc.1 Feb 7, 2020
0.13.0-rc.2 Dec 4, 2019
0.10.0 Dec 14, 2018

#23 in #exonum

Download history 56/week @ 2024-08-26 35/week @ 2024-09-02 38/week @ 2024-09-09 42/week @ 2024-09-16 93/week @ 2024-09-23 38/week @ 2024-09-30 4/week @ 2024-10-07 45/week @ 2024-10-14 27/week @ 2024-10-21 34/week @ 2024-10-28 35/week @ 2024-11-04 13/week @ 2024-11-11 41/week @ 2024-11-18 53/week @ 2024-11-25 55/week @ 2024-12-02 132/week @ 2024-12-09

281 downloads per month
Used in 17 crates (15 directly)

Apache-2.0

74KB
1.5K SLoC

Procedural macros for Exonum

Travis Build Status License: Apache-2.0 rust 1.42.0+ required

This crate provides several procedural macros for Exonum core and Exonum services.

Overview of presented macros:

  • BinaryValue: derive macro for BinaryValue trait of MerkleDB. Depending on codec, the implementation may use ProtobufConvert trait as base (default), or serde traits using bincode.
  • ObjectHash: derive macro for ObjectHash trait of MerkleDB. It can be used for any type that implements BinaryValue trait.
  • FromAccess: derive macro for FromAccess trait for schemas of MerkleDB indexes.
  • ServiceDispatcher: derive macro for generating dispatching mechanisms of Rust Exonum services.
  • ServiceFactory: derive macro for generating factory mechanisms of Rust Exonum services.
  • exonum_interface: attribute macro for transforming trait into interface of Rust Exonum service.
  • ExecutionFail: derive macro similar to failure::Fail, implementing ExecutionFail trait for an enum.
  • RequireArtifact: derive macro for RequireArtifact trait.

Consult the crate docs for more details.

Usage

Include exonum-derive as a dependency in your Cargo.toml:

[dependencies]
exonum-derive = "1.0.0"

License

exonum-derive is licensed under the Apache License (Version 2.0). See LICENSE for details.

Dependencies

~2MB
~49K SLoC