ender 0.5.2

An encoding library to work with any binary data format
Documentation
[package]
name = "ender"
version = "0.5.2"
edition = "2021"
repository = "https://github.com/bohdloss/ender"
keywords = ["no_std", "ecoding", "ender", "parsing", "binary"]
categories = ["embedded", "encoding", "parsing", "no-std", "no-std::no-alloc"]
description = "An encoding library to work with any binary data format"
license = "MIT"
readme = "../README.md"

[package.metadata.docs.rs]
features = ["debug", "alloc", "sync", "std", "serde", "derive", "unstable"]
rustdoc-args = ["--generate-link-to-definition"]

[package.metadata.playground]
features = ["std", "derive"]

[dependencies]
ender-derive = { version = "=0.5.2", optional = true, path = "../ender-derive" }
array-init = "2.1.0"
parse-display = { version = "0.10.0", default-features = false }
bytemuck = { version = "1.23.2" }
embedded-io = { version = "0.6.1", default-features = false }

# serde feature
serde = { version = "1.0.197", optional = true, default-features = false }

[dev-dependencies]
serde = { version = "1.0.197", features = ["derive"] }
uuid = { version = "1.8.0", features = ["serde"] }
bitflags = "2.4.2"
semver = { version = "1.0.22", features = ["serde"] }

[features]
default = ["std"]

# Keeps track of the various structures being encoded/decoded to provide better information
# when debugging a binary format. This probably prevents some optimizations on release mode,
# so use this ONLY in executables, NEVER in libraries.
debug = ["ender-derive/debug"]

# Enables all features. Includes serde support and the derive macros.
# The unstable feature still has to be enabled separately.
all = ["alloc", "sync", "std", "derive", "serde"]

# Imports the alloc crate, enabling some additional features and Encode/Decode implementations,
# at the cost of portability
alloc = ["embedded-io/alloc", "serde?/alloc"]

# Enables implementations of Encode/Decode for types that require atomic support
sync = []

# Imports the std crate, enabling some additional features and Encode/Decode implementations,
# at the cost of portability
std = ["alloc", "sync", "embedded-io/std", "serde?/std"]

# Enables the serde compatibility layer.
serde = ["dep:serde"]

# Enables the derive(Encode, Decode) macros.
derive = ["ender-derive"]

# Enables features only available in nightly.
unstable = ["ender-derive/unstable"]