# 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.49.0"
name = "tracing-attributes"
version = "0.1.21"
authors = [
    "Tokio Contributors <team@tokio.rs>",
    "Eliza Weisman <eliza@buoyant.io>",
    "David Barsky <dbarsky@amazon.com>",
]
description = """
Procedural macro attributes for automatically instrumenting functions.
"""
homepage = "https://tokio.rs"
readme = "README.md"
keywords = [
    "logging",
    "tracing",
    "macro",
    "instrument",
    "log",
]
categories = [
    "development-tools::debugging",
    "development-tools::profiling",
    "asynchronous",
]
license = "MIT"
repository = "https://github.com/tokio-rs/tracing"

[lib]
proc-macro = true

[dependencies.proc-macro2]
version = "1"

[dependencies.quote]
version = "1"

[dependencies.syn]
version = "1.0.43"
features = [
    "full",
    "parsing",
    "printing",
    "visit",
    "visit-mut",
    "clone-impls",
    "extra-traits",
    "proc-macro",
]
default-features = false

[dev-dependencies.async-trait]
version = "0.1.44"

[dev-dependencies.tokio-test]
version = "0.2.0"

[dev-dependencies.tracing]
version = "0.1"

[dev-dependencies.tracing-core]
version = "0.1"

[features]
async-await = []

[badges.maintenance]
status = "experimental"
