# 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"
name = "getrandom"
version = "0.2.5"
authors = ["The Rand Project Developers"]
exclude = [".*"]
description = "A small cross-platform library for retrieving random data from system source"
documentation = "https://docs.rs/getrandom"
categories = [
    "os",
    "no-std",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-random/getrandom"

[package.metadata.docs.rs]
features = [
    "std",
    "custom",
]
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[dependencies.cfg-if]
version = "1"

[dependencies.compiler_builtins]
version = "0.1"
optional = true

[dependencies.core]
version = "1.0"
optional = true
package = "rustc-std-workspace-core"

[features]
custom = []
js = [
    "wasm-bindgen",
    "js-sys",
]
rdrand = []
rustc-dep-of-std = [
    "compiler_builtins",
    "core",
    "libc/rustc-dep-of-std",
    "wasi/rustc-dep-of-std",
]
std = []
test-in-browser = []

[target."cfg(all(target_arch = \"wasm32\", target_os = \"unknown\"))".dependencies.js-sys]
version = "0.3"
optional = true

[target."cfg(all(target_arch = \"wasm32\", target_os = \"unknown\"))".dependencies.wasm-bindgen]
version = "0.2.62"
optional = true
default-features = false

[target."cfg(all(target_arch = \"wasm32\", target_os = \"unknown\"))".dev-dependencies.wasm-bindgen-test]
version = "0.3.18"

[target."cfg(target_os = \"wasi\")".dependencies.wasi]
version = "0.10"

[target."cfg(unix)".dependencies.libc]
version = "0.2.64"
default-features = false
