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

#1038 in #protobuf

Download history 72/week @ 2026-02-17 38/week @ 2026-02-24 111/week @ 2026-03-03 137/week @ 2026-03-10 69/week @ 2026-03-17 35/week @ 2026-03-24 38/week @ 2026-03-31 59/week @ 2026-04-07 94/week @ 2026-04-14 45/week @ 2026-04-21 51/week @ 2026-04-28 41/week @ 2026-05-05 90/week @ 2026-05-12 50/week @ 2026-05-19 76/week @ 2026-05-26 31/week @ 2026-06-02

247 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
~52K SLoC