# 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 believe there's an error in this file please file an
# issue against the rust-lang/cargo repository. If you're
# editing this file be aware that the upstream Cargo.toml
# will likely look very different (and much more reasonable)

[package]
name = "num-bigint"
version = "0.2.2"
authors = ["The Rust Project Developers"]
build = "build.rs"
description = "Big integer implementation for Rust"
homepage = "https://github.com/rust-num/num-bigint"
documentation = "https://docs.rs/num-bigint"
readme = "README.md"
keywords = ["mathematics", "numerics", "bignum"]
categories = ["algorithms", "data-structures", "science"]
license = "MIT/Apache-2.0"
repository = "https://github.com/rust-num/num-bigint"
[package.metadata.docs.rs]
features = ["std", "serde", "rand"]

[[bench]]
name = "bigint"

[[bench]]
name = "factorial"

[[bench]]
name = "gcd"

[[bench]]
name = "roots"

[[bench]]
name = "shootout-pidigits"
harness = false
[dependencies.num-integer]
version = "0.1.39"
default-features = false

[dependencies.num-traits]
version = "0.2.4"
default-features = false

[dependencies.rand]
version = "0.5"
features = ["std"]
optional = true
default-features = false

[dependencies.serde]
version = "1.0"
features = ["std"]
optional = true
default-features = false
[dev-dependencies.serde_test]
version = "1.0"

[features]
default = ["std"]
i128 = ["num-integer/i128", "num-traits/i128"]
std = ["num-integer/std", "num-traits/std"]
