serde_with 2.3.0

Custom de/serialization functions for Rust's serde
Documentation
[package]
authors = [
    "Jonas Bushart",
    # For creation of the SerializeAs and DeserializeAs traits.
    "Marcin Kaźmierczak",
]
name = "serde_with"
rust-version = "1.60"
version = "2.3.0"

categories = ["encoding", "no-std"]
description = "Custom de/serialization functions for Rust's serde"
documentation = "https://docs.rs/serde_with/"
edition = "2021"
keywords = ["serde", "utilities", "serialization", "deserialization"]
license = "MIT OR Apache-2.0"
readme = "README.md"
repository = "https://github.com/jonasbb/serde_with"

include = ["src/**/*", "tests/**/*", "LICENSE-*", "README.md", "CHANGELOG.md"]

[badges]
maintenance = {status = "actively-developed"}

# When adding new features update the documentation in feature-flags.md
[features]
default = ["std", "macros"]

alloc = [
    "serde/alloc",

    "base64?/alloc",
    "chrono_0_4?/alloc",
    "hex?/alloc",
    "serde_json?/alloc",
    "time_0_3?/alloc",
]
std = [
    "alloc",
    "serde/std",

    # Enables `Local` type
    "chrono_0_4?/clock",
    "chrono_0_4?/std",
    "indexmap_1?/std",
    "time_0_3?/serde-well-known",
    "time_0_3?/std",
]

base64 = ["dep:base64", "alloc"]
chrono = ["chrono_0_4"]
chrono_0_4 = ["dep:chrono_0_4"]
guide = ["dep:doc-comment", "macros", "std"]
hex = ["dep:hex", "alloc"]
indexmap = ["indexmap_1"]
indexmap_1 = ["dep:indexmap_1", "alloc"]
json = ["dep:serde_json", "alloc"]
macros = ["dep:serde_with_macros"]
time_0_3 = ["dep:time_0_3"]

# When adding new optional dependencies update the documentation in feature-flags.md
[dependencies]
base64 = {version = "0.13.0", optional = true, default-features = false}
chrono_0_4 = {package = "chrono", version = "0.4.20", optional = true, default-features = false, features = ["serde"]}
doc-comment = {version = "0.3.3", optional = true}
hex = {version = "0.4.3", optional = true, default-features = false}
indexmap_1 = {package = "indexmap", version = "1.8", optional = true, default-features = false, features = ["serde-1"]}
serde = {version = "1.0.122", default-features = false, features = ["derive"]}
serde_json = {version = "1.0.45", optional = true, default-features = false}
serde_with_macros = {path = "../serde_with_macros", version = "=2.3.0", optional = true}
time_0_3 = {package = "time", version = "~0.3.11", optional = true, default-features = false}

[dev-dependencies]
expect-test = "1.3.0"
fnv = "1.0.6"
glob = "0.3.0"
mime = "0.3.16"
pretty_assertions = "1.0.0"
regex = {version = "1.5.6", default-features = false, features = ["std"]}
rmp-serde = "1.1.0"
ron = "0.8"
rustversion = "1.0.0"
serde_json = {version = "1.0.25", features = ["preserve_order"]}
serde_test = "1.0.124"
serde_yaml = "0.9.2"
serde-xml-rs = "0.6.0"
version-sync = "0.9.1"

[[test]]
name = "base64"
path = "tests/base64.rs"
required-features = ["base64", "macros"]

[[test]]
name = "chrono_0_4"
path = "tests/chrono_0_4.rs"
required-features = ["chrono_0_4", "macros"]

[[test]]
name = "hex"
path = "tests/hex.rs"
required-features = ["hex", "macros"]

[[test]]
name = "indexmap_1"
path = "tests/indexmap_1.rs"
required-features = ["indexmap_1", "macros"]

[[test]]
name = "json"
path = "tests/json.rs"
required-features = ["json", "macros"]

[[test]]
name = "serde_as"
path = "tests/serde_as/lib.rs"
required-features = ["macros"]

[[test]]
name = "time_0_3"
path = "tests/time_0_3.rs"
required-features = ["macros", "time_0_3"]

[[test]]
name = "derives"
path = "tests/derives/lib.rs"
required-features = ["macros"]

[[test]]
name = "with_prefix"
path = "tests/with_prefix.rs"
required-features = ["macros"]

[[test]]
name = "rust"
path = "tests/rust.rs"
required-features = ["alloc"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    # Enable doc_cfg showing the required features.
    "--cfg=docsrs",
    # Generate links to definition in rustdoc source code pages
    # https://github.com/rust-lang/rust/pull/84176
    "-Zunstable-options", "--generate-link-to-definition"
]

[package.metadata.release]
pre-release-replacements = [
    {file = "CHANGELOG.md", search = "\\[Unreleased\\]", replace = "[Unreleased]\n\n## [{{version}}] - {{date}}"},
    {file = "src/lib.rs", search = "https://docs\\.rs/serde_with/[\\d.]+/", replace = "https://docs.rs/serde_with/{{version}}/"},
    {file = "README.md", search = "https://docs\\.rs/serde_with/[\\d.]+/", replace = "https://docs.rs/serde_with/{{version}}/"},
]
tag = true
tag-message = "{{crate_name}} v{{version}}"
tag-name = "v{{version}}"