[workspace]
members = [".", "subversion-sys"]

[package]
name = "subversion"
version = "0.1.0"
edition = "2021"
authors = ["Jelmer Vernooĳ <jelmer@apache.org>"]
repository = "https://github.com/jelmer/subversion-rs.git"
homepage = "https://github.com/jelmer/subversion-rs"
license = "Apache-2.0"
description = "Rust bindings for Subversion"
documentation = "https://docs.rs/subversion"

[lib]
doctest = false

[dependencies]
apr = "0.4.2"
bitflags = "2.10.0"
apr-sys = "0.2.1"
is-terminal = "0.4"
ctor = ">=0.2.0,<0.7.0"
indexmap = "2.12"
lazy_static = "1.5.0"
libc = "0.2"
url = { version = "2.5.7", optional = true }
subversion-sys = { version = "0.1.0", path = "subversion-sys", default-features = false }

[features]
default = ["ra", "wc", "client", "delta", "repos"]
url = ["dep:url"]
client = ["wc", "ra", "repos", "subversion-sys/client"]
ra = ["delta", "subversion-sys/ra"]
wc = ["delta", "subversion-sys/wc"]
delta = ["subversion-sys/delta"]
repos = ["delta"]
# Optional utility modules
x509 = []
cmdline = []
nls = []
utf = []
cache = []

[package.metadata.cargo-all-features]
# Exclude utility modules from feature combination matrix — they are
# independent of one another and of the core features, so testing every
# combination is wasteful.
denylist = ["x509", "cmdline", "nls", "utf", "cache", "url"]

[dev-dependencies]
tempfile = "3.23.0"

[[example]]
name = "checkout"
required-features = ["client"]

[[example]]
name = "cat"
required-features = ["client"]

[[example]]
name = "merge_with_conflicts"
required-features = ["client"]

[[example]]
name = "resolve_conflicts"
required-features = ["client", "repos"]

[[example]]
name = "branch_merge"
required-features = ["client", "repos"]
