[package]
name = "tinymist-std"
description = "Additional functions wrapping Rust's standard library."
# group: world
version = "0.15.0"
authors.workspace = true
license.workspace = true
edition.workspace = true
homepage.workspace = true
repository.workspace = true

[dependencies]

anyhow.workspace = true
base64.workspace = true
battery = { workspace = true, optional = true }
bitvec.workspace = true
comemo.workspace = true
dashmap.workspace = true
ecow = { workspace = true, features = ["serde"] }
fxhash.workspace = true
log.workspace = true
lsp-types.workspace = true
path-clean.workspace = true
pathdiff.workspace = true
parking_lot.workspace = true
rustc-hash.workspace = true
same-file = { workspace = true, optional = true }
serde = { workspace = true, features = ["derive"] }
serde_repr.workspace = true
serde_json.workspace = true
serde_with.workspace = true
siphasher.workspace = true
tempfile = { workspace = true, optional = true }
time = { workspace = true, features = ["formatting"] }
web-time = { workspace = true, optional = true }

# feature = "web"
js-sys = { workspace = true, optional = true }
wasm-bindgen = { workspace = true, optional = true }

# feature = "rkyv"
rkyv = { workspace = true, optional = true }

# feature = "typst"
typst = { workspace = true, optional = true }
typst-layout = { workspace = true, optional = true }
typst-html = { workspace = true, optional = true }
typst-shim = { workspace = true, optional = true }

[target.'cfg(target_os = "macos")'.dependencies]
core-foundation.workspace = true

[target.'cfg(unix)'.dependencies]
libc.workspace = true

[target.'cfg(windows)'.dependencies]
windows-sys = { workspace = true, features = [
    "Win32_Foundation",
    "Win32_Security",
    "Win32_Storage_FileSystem",
    "Win32_System_IO",
    "Win32_System_Console",
    "Win32_System_JobObjects",
    "Win32_System_Threading",
] }

[dev-dependencies]
hex.workspace = true

[features]

default = ["full"]
full = ["web", "rkyv", "typst"]

typst = ["dep:typst", "dep:typst-shim", "dep:typst-html", "dep:typst-layout"]

rkyv = ["rkyv/alloc", "rkyv/archive_le"]
rkyv-validation = ["rkyv/validation"]

__web = ["wasm-bindgen", "js-sys", "web-time"]
web = ["__web"]
system = ["tempfile", "same-file"]
battery = ["dep:battery"]
bi-hash = []

[lints]
workspace = true
