[package]
name = "byte-wrapper"
description = "Newtype wrappers for hex byte arrays and base64 vectors, with serde and schemars support."
version = "0.1.0"
license = "MIT OR Apache-2.0"
repository = "https://github.com/oxidecomputer/byte-wrapper"
documentation = "https://docs.rs/byte-wrapper"
edition = "2024"
rust-version = "1.88"
keywords = ["bytes", "hex", "base64", "serde", "no_std"]
categories = ["encoding", "no-std::no-alloc"]
include = [
"src/**/*",
"tests/**/*",
"Cargo.toml",
"CHANGELOG.md",
"LICENSE-APACHE",
"LICENSE-MIT",
"README.md",
]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(doc_cfg)"] }
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg=doc_cfg"]
[package.metadata.cargo-sync-rdme.badge.badges]
license = true
crates-io = true
docs-rs = true
rust-version = true
[package.metadata.release]
pre-release-replacements = [
{ file = "CHANGELOG.md", search = "Unreleased", replace = "[{{version}}]", min = 1 },
{ file = "CHANGELOG.md", search = "ReleaseDate", replace = "{{date}}", min = 1 },
{ file = "CHANGELOG.md", search = "<!-- next-header -->", replace = "<!-- next-header -->\n## Unreleased - ReleaseDate\n", exactly = 1 },
{ file = "CHANGELOG.md", search = "<!-- next-url -->", replace = "<!-- next-url -->\n[{{version}}]: https://github.com/oxidecomputer/byte-wrapper/releases/tag/byte-wrapper-{{version}}", exactly = 1 },
]
[features]
default = ["base64", "hex"]
alloc = ["serde_core?/alloc"]
base64 = ["alloc", "dep:base64"]
hex = ["dep:hex"]
schemars08 = ["alloc", "dep:schemars08", "dep:serde_json"]
serde = ["dep:serde_core"]
[dependencies]
base64 = { version = "0.22", optional = true }
hex = { version = "0.4", default-features = false, optional = true }
schemars08 = { package = "schemars", version = "0.8", optional = true }
serde_core = { version = "1", default-features = false, optional = true }
serde_json = { version = "1", optional = true }
[dev-dependencies]
hex-literal = "1"
serde = { version = "1", default-features = false, features = ["derive"] }
serde_json = "1"
ciborium = "0.2"
expectorate = "1"
prettyplease = "0.2"
quote = "1"
syn = "2"
typify-impl = "0.6"