rust-lightning/Cargo.toml
Jeffrey Czyz 6e0384e39c
Macro for composing custom message handlers
BOLT 1 specifies a custom message type range for use with experimental
or application-specific messages. While a `CustomMessageHandler` can be
defined to support more than one message type, defining such a handler
requires a significant amount of boilerplate and can be error prone.

Add a crate exporting a `composite_custom_message_handler` macro for
easily composing pre-defined custom message handlers. The resulting
handler can be further composed with other custom message handlers using
the same macro.

This requires a separate crate since the macro needs to support "or"
patterns in macro_rules, which is only available in edition 2021.

https://doc.rust-lang.org/edition-guide/rust-2021/or-patterns-macro-rules.html

Otherwise, a crate defining a handler for a set of custom messages could
not easily be reused with another custom message handler. Doing so would
require explicitly duplicating the reused handlers type ids, but those
may change when the crate is updated.
2023-02-14 18:20:40 -06:00

36 lines
842 B
TOML

[workspace]
members = [
"lightning",
"lightning-block-sync",
"lightning-transaction-sync",
"lightning-invoice",
"lightning-net-tokio",
"lightning-persister",
"lightning-background-processor",
"lightning-rapid-gossip-sync"
]
exclude = [
"lightning-custom-message",
"no-std-check",
]
# Our tests do actual crypto and lots of work, the tradeoff for -O1 is well worth it.
# Ideally we would only do this in profile.test, but profile.test only applies to
# the test binary, not dependencies, which means most of the critical code still
# gets compiled as -O0. See
# https://doc.rust-lang.org/cargo/reference/profiles.html#profile-selection
[profile.dev]
opt-level = 1
panic = "abort"
[profile.release]
opt-level = 3
lto = true
panic = "abort"
[profile.bench]
opt-level = 3
codegen-units = 1
lto = true