[package]
name = "organic"
version = "0.1.9"
authors = ["Tom Alexander <tom@fizz.buzz>"]
description = "An org-mode parser."
edition = "2021"
license = "0BSD"
repository = "https://code.fizz.buzz/talexander/organic"
readme = "README.md"
keywords = ["emacs", "org-mode"]
categories = ["parsing"]
resolver = "2"
include = [
  "LICENSE",
  "**/*.rs",
  "Cargo.toml"
]

[lib]
name = "organic"
path = "src/lib.rs"

[[bin]]
  # This bin exists for development purposes only. The real target of this crate is the library.
  name = "parse"
  path = "src/main.rs"

[[bin]]
  # This bin exists for development purposes only. The real target of this crate is the library.
  name = "compare"
  path = "src/bin_compare.rs"
  required-features = ["compare"]

[dependencies]
nom = "7.1.1"
opentelemetry = { version = "0.20.0", optional = true, default-features = false, features = ["trace", "rt-tokio"] }
opentelemetry-otlp = { version = "0.13.0", optional = true }
opentelemetry-semantic-conventions = { version = "0.12.0", optional = true }
tokio = { version = "1.30.0", optional = true, default-features = false, features = ["rt", "rt-multi-thread"] }
tracing = { version = "0.1.37", optional = true }
tracing-opentelemetry = { version = "0.20.0", optional = true }
tracing-subscriber = { version = "0.3.17", optional = true, features = ["env-filter"] }

[build-dependencies]
walkdir = "2.3.3"

[features]
default = []
compare = []
tracing = ["dep:opentelemetry", "dep:opentelemetry-otlp", "dep:opentelemetry-semantic-conventions", "dep:tokio", "dep:tracing", "dep:tracing-opentelemetry", "dep:tracing-subscriber"]

# Optimized build for any sort of release.
[profile.release-lto]
inherits = "release"
lto = true
strip = "symbols"

# Profile for performance testing with the "perf" tool. Notably keeps debug enabled and does not strip symbols to make reading the perf output easier.
[profile.perf]
inherits = "release"
lto = true
debug = true