[package]
name = "tetsy-scale-codec"
description = "SCALE - Simple Concatenating Aggregated Little Endians"
version = "2.0.0-update1"
authors = ["Parity Technologies <admin@parity.io>"]
license = "Apache-2.0"
repository = "https://github.com/tetcoin/tetsy-scale-codec"
categories = ["encoding"]
edition = "2018"

[dependencies]
arrayvec = { version = "0.5.1", default-features = false, features = ["array-sizes-33-128", "array-sizes-129-255"] }
serde = { version = "1.0.102", optional = true }
tetsy-scale-codec-derive = { path = "derive", version = "2.0.0", default-features = false, optional = true }
bitvec = { version = "0.21.0", default-features = false, features = ["alloc"], optional = true }
byte-slice-cast = { version = "1.0.0", default-features = false }
generic-array = { version = "0.14.4", optional = true }
arbitrary = { version = "0.4.1", features = ["derive"], optional = true }

[dev-dependencies]
criterion = "0.3.0"
serde_derive = { version = "1.0" }
tetsy-scale-codec-derive = { path = "derive", version = "2.0.0", default-features = false }
quickcheck = "0.9"

[[bench]]
name = "benches"
harness = false

[lib]
bench = false

[features]
default = ["std"]
derive = ["tetsy-scale-codec-derive"]
std = ["serde", "bitvec/std", "byte-slice-cast/std", "chain-error"]
bit-vec = ["bitvec"]
fuzz = ["std", "arbitrary"]

# Make error fully descriptive with chaining error message.
# Should not be used in a constrained environment.
chain-error = []

# WARNING: DO _NOT_ USE THIS FEATURE IF YOU ARE WORKING ON CONSENSUS CODE!*
#
# Provides implementations for more data structures than just Vec and Box.
# Concretely it will provide tetsy-scale-codec implementations for many types
# that can be found in std and/or alloc.
full = []

[workspace]
members = [
	"derive",
	"fuzzer",
]
