content: [package]
  name = "ab-core-primitives"
  description = "Core primitives for the protocol"
  license = "0BSD"
  version = "0.1.0"
  authors = ["Nazar Mokrynskyi <nazar@mokrynskyi.com>"]
  edition = "2024"
  include = [
      "/src",
      "/Cargo.toml",
  ]
  
  [package.metadata.docs.rs]
  all-features = true
  
  [dependencies]
  ab-aligned-buffer = { workspace = true, optional = true }
  ab-blake3 = { workspace = true }
  ab-io-type = { workspace = true }
  ab-merkle-tree = { workspace = true }
  bech32 = { workspace = true }
  blake3 = { workspace = true }
  bytes = { workspace = true, optional = true }
  derive_more = { workspace = true, features = ["full"] }
  ed25519-zebra = { workspace = true }
  hex = { workspace = true }
  once_cell = { workspace = true, features = ["alloc"], optional = true }
  parity-scale-codec = { workspace = true, features = ["bytes", "derive", "max-encoded-len"], optional = true }
  rayon = { workspace = true, optional = true }
  rclite = { workspace = true, optional = true }
  scale-info = { workspace = true, features = ["derive"], optional = true }
  serde = { workspace = true, features = ["derive"], optional = true }
  serde-big-array = { workspace = true }
  thiserror = { workspace = true }
  yoke = { workspace = true, features = ["derive"] }
  
  [target.'cfg(not(any(target_os = "none", target_os = "unknown")))'.dependencies]
  rclite = { workspace = true }
  
  [dev-dependencies]
  rand_core = { workspace = true }
  rand_chacha = { workspace = true }
  
  [features]
  alloc = [
      "dep:ab-aligned-buffer",
      "dep:bytes",
      "dep:once_cell",
      "dep:rclite",
      "serde?/alloc",
  ]
  scale-codec = [
      "dep:parity-scale-codec",
      "dep:scale-info",
      "ab-io-type/scale-codec",
      "alloc",
  ]
  # Enables some APIs
  parallel = [
      "blake3/rayon",
      "dep:rayon",
  ]
  serde = [
      "dep:serde",
      "ab-io-type/serde",
      "alloc",
      "bytes/serde",
      # TODO: Ideally wouldn't be necessary, but https://github.com/KokaKiwi/rust-hex/issues/90
      "hex/alloc",
      "hex/serde",
  ]
  
  [lints]
  workspace = true
  