# 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]
edition = "2015"
name = "mach"
version = "0.3.2"
authors = ["Nick Fitzgerald <fitzgen@gmail.com>", "David Cuddeback <david.cuddeback@gmail.com>", "Gonzalo Brito Gadeschi <gonzalobg88@gmail.com>"]
description = "A Rust interface to the user-space API of the Mach 3.0 kernel that underlies OSX."
readme = "README.md"
keywords = ["kernel", "macos", "darwin"]
categories = ["api-bindings", "external-ffi-bindings", "no-std", "os"]
license = "BSD-2-Clause"
repository = "https://github.com/fitzgen/mach"

[features]
default = []
deprecated = []
rustc-dep-of-std = ["rustc-std-workspace-core", "libc/rustc-dep-of-std"]
[target."cfg(any(target_os = \"macos\", target_os = \"ios\"))".dependencies.libc]
version = "0.2"
default-features = false

[target."cfg(any(target_os = \"macos\", target_os = \"ios\"))".dependencies.rustc-std-workspace-core]
version = "1.0.0"
optional = true
[badges.is-it-maintained-issue-resolution]
repository = "fitzgen/mach"

[badges.is-it-maintained-open-issues]
repository = "fitzgen/mach"

[badges.maintenance]
status = "passively-maintained"

[badges.travis-ci]
repository = "fitzgen/mach"
