[package]
name        = "brec_macros"
version     = "0.6.0"
edition     = "2024"
authors     = ["d.astafyev@outlook.com"]
description = "Code generator for brec. Implements the block and payload macros."
license     = "Apache-2.0"
resolver    = "2"
repository  = "https://github.com/icsmw/brec.git"
homepage    = "https://github.com/icsmw/brec"
readme      = "README.md"

keywords = ["binary", "packet", "storage", "logging", "streaming"]

categories = [
    "encoding",
    "data-structures",
    "filesystem",
    "development-tools",
    "parser-implementations",
]

[lib]
proc-macro = true

[features]
generate_macro_test = []
locked_storage      = []
observer            = []
resilient           = []
napi                = ["dep:brec_node_gen"]
wasm                = ["dep:brec_wasm_gen"]
java                = ["dep:brec_java_gen"]
csharp              = ["dep:brec_csharp_gen"]

[dependencies]
thiserror.workspace          = true
syn.workspace                = true
quote.workspace              = true
proc-macro2.workspace        = true
enum_ids.workspace           = true
crc32fast.workspace          = true
lazy_static.workspace        = true
serde.workspace              = true
brec_consts.workspace        = true
brec_macros_parser.workspace = true
brec_scheme.workspace        = true
brec_node_gen                = { workspace = true, optional = true }
brec_wasm_gen                = { workspace = true, optional = true }
brec_java_gen                = { workspace = true, optional = true }
brec_csharp_gen              = { workspace = true, optional = true }
serde_json                   = "1.0"

[dev-dependencies]
proptest.workspace    = true
quote.workspace       = true
proc-macro2.workspace = true
uuid                  = { workspace = true, features = ["fast-rng", "macro-diagnostics", "v4"] }
