# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2018"
rust-version = "1.67.0"
name = "borsh"
version = "1.5.1"
authors = ["Near Inc <hello@near.org>"]
exclude = ["*.snap"]
description = """
Binary Object Representation Serializer for Hashing
"""
homepage = "https://borsh.io"
readme = "README.md"
categories = [
    "encoding",
    "network-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/near/borsh-rs"

[package.metadata.docs.rs]
features = [
    "derive",
    "unstable__schema",
    "rc",
]
targets = ["x86_64-unknown-linux-gnu"]

[lib]
name = "borsh"
path = "src/lib.rs"

[[bin]]
name = "generate_schema_schema"
path = "src/generate_schema_schema.rs"
required-features = [
    "std",
    "unstable__schema",
]

[dependencies.ascii]
version = "1.1"
optional = true

[dependencies.borsh-derive]
version = "~1.5.1"
optional = true

[dependencies.bson]
version = "2"
optional = true

[dependencies.bytes]
version = "1"
optional = true

[dependencies.hashbrown]
version = ">=0.11,<0.15.0"
optional = true

[dev-dependencies.insta]
version = "1.29.0"

[build-dependencies.cfg_aliases]
version = "0.2.1"

[features]
de_strict_order = []
default = ["std"]
derive = ["borsh-derive"]
rc = []
std = []
unstable__schema = [
    "derive",
    "borsh-derive/schema",
]
