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 75/week @ 2024-03-14 216/week @ 2024-03-21 154/week @ 2024-03-28 89/week @ 2024-04-04 83/week @ 2024-04-11 80/week @ 2024-04-18 81/week @ 2024-04-25 69/week @ 2024-05-02 67/week @ 2024-05-09 77/week @ 2024-05-16 59/week @ 2024-05-23 55/week @ 2024-05-30 36/week @ 2024-06-06 42/week @ 2024-06-13 67/week @ 2024-06-20 25/week @ 2024-06-27

180 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
~46K SLoC