specta 1.0.5

Easily export your Rust types to other languages
Documentation
[package]
name = "specta"
description = "Easily export your Rust types to other languages"
version = "1.0.5"
authors = ["Oscar Beaumont <oscar@otbeaumont.me>"]
edition = "2021"
license = "MIT"
include = ["/src", "/examples", "/LICENCE", "/README.md"]
repository = "https://github.com/oscartbeaumont/specta"
documentation = "https://docs.rs/specta/latest/specta"
keywords = ["async", "specta", "rspc", "typescript", "typesafe"]
categories = ["web-programming", "asynchronous"]
autotests = false

# /bin/sh RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --all-features
[package.metadata."docs.rs"]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[[test]]
name = "integration_tests"
path = "tests/lib.rs"
harness = true

[[example]]
name = "export"
required-features = ["export"]

[features]
default = ["serde", "typescript"]

##! Internal Features
## Support for exporting the types of Rust functions.
functions = ["serde", "specta-macros/functions"]
export = ["dep:ctor", "specta-macros/export"]

#! Compatability
## Support for [serde](https://serde.rs) and [serde-json](https://github.com/serde-rs/json)
serde = ["specta-macros/serde", "dep:serde_json"]
## Support for [Tauri](https://tauri.app). This is required when using [`specta::function`](macro@crate::specta) with Tauri Commands.
tauri = ["dep:tauri"]

#! Languages
## Support for [TypeScript](https://www.typescriptlang.org) language exporting
typescript = []
# ## Support for [Rust](https://www.rust-lang.org) language exporting
# rust = []
# ## Support for [Swift](https://www.swift.org/) language exporting
# swift = []
# ## Support for [Kotlin](https://kotlinlang.org/) language exporting
# kotlin = []
# ## Support for [Go Lang](https://go.dev/) language exporting
# go = []
# ## Support for [OpenAPI](https://www.openapis.org) language exporting
# openapi = ["dep:openapiv3"]

#! External types
## [uuid](https://docs.rs/uuid) crate
uuid = ["dep:uuid"]
## [chrono](https://docs.rs/chrono) crate
chrono = ["dep:chrono"]
## [time](https://docs.rs/time) crate
time = ["dep:time"]
## [bigdecimal](https://docs.rs/bigdecimal) crate
bigdecimal = ["dep:bigdecimal"]
## [rust_decimal](https://docs.rs/rust_decimal) crate
rust_decimal = ["dep:rust_decimal"]
## [indexmap](https://docs.rs/indexmap) crate
indexmap = ["dep:indexmap"]
## [ipnetwork](https://docs.rs/ipnetwork) crate
ipnetwork = ["dep:ipnetwork"]
## [mac_address](https://docs.rs/mac_address) crate
mac_address = ["dep:mac_address"]
## [bit-vec](https://docs.rs/bit-vec) crate
bit-vec = ["dep:bit-vec"]
## [bson](https://docs.rs/bson) crate
bson = ["dep:bson"]
## [uhlc](https://docs.rs/uhlc) crate
uhlc = ["dep:uhlc"]
## [bytesize](https://docs.rs/bytesize) crate
bytesize = ["dep:bytesize"]
## [glam](https://docs.rs/glam) crate
glam = ["dep:glam"]
## [tokio](https://docs.rs/tokio) crate
tokio = ["dep:tokio"]
## [url](https://docs.rs/url) crate
url = ["dep:url"]

[dependencies]
specta-macros = { version = "1.0.5", path = "./macros" }
serde = { version = "1.0.147", features = ["derive"] }
serde_json = { version = "1.0.87", optional = true, default-features = false, features = ["std"] }
uuid = { version = "1.2.1", optional = true, default-features = false, features = [] }
chrono = { version = "0.4.23", optional = true, default-features = false, features = ["clock"] }
time = { version = "0.3.17", optional = true, default-features = false, features = [] }
bigdecimal = { version = "0.3.0", optional = true, default-features = false, features = [] }
rust_decimal = { version = "1.26.1", optional = true, default-features = false, features = [] }
indexmap = { version = "1.9.1", optional = true, default-features = false, features = [] }
ipnetwork = { version = "0.20.0", optional = true, default-features = false, features = [] }
mac_address = { version = "1.1.4", optional = true, default-features = false, features = [] }
bit-vec = { version = "0.6.3", optional = true, default-features = false, features = [] }
bson = { version = "2.4.0", optional = true, default-features = false, features = [] }
openapiv3 = { version = "1.0.1", optional = true, default-features = false, features = [] }
uhlc = { version = "0.5.1", optional = true, default-features = false, features = [] }
tauri = { version = "1.2.1", optional = true, default-features = false, features = [] }
bytesize = { version = "1.1.0", optional = true, default-features = false, features = [] }
glam = { version = "0.22", optional = true, default-features = false, features = ["std"] }
tokio = { version = "1.25", optional = true, default-features = false, features = ["sync"] }
url = { version = "2.3.1", optional = true, default-features = false }
paste = "1.0.9"
document-features = "0.2.6"
ctor = { version = "0.1.26", optional = true }
once_cell = "1.16.0"
indoc = "1.0.8"
thiserror = "1.0.38"

[dev-dependencies]
doc-comment = "0.3.3"
serde = { version = "1.0.147", features = ["derive"] }
trybuild = "1.0.77"