# 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 = "2024"
rust-version = "1.88.0"
name = "puniyu_types"
version = "0.7.4"
authors = ["wuliya <3369906077@qq.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "puniyu 通用类型库"
homepage = "https://github.com/puniyu/puniyu"
readme = "README.md"
license = "LGPL-3.0-only"
repository = "https://github.com/puniyu/puniyu"
resolver = "2"

[package.metadata.workspaces]
independent = true

[features]
account = ["dep:serde"]
adapter = [
    "dep:chrono",
    "dep:thiserror",
    "dep:reqwest",
    "dep:async-trait",
    "dep:puniyu_logger",
    "dep:derive_builder",
    "dep:bytes",
    "version",
    "contact",
    "sender",
    "element",
    "config",
]
bot = [
    "adapter",
    "account",
]
bus = [
    "dep:tokio",
    "dep:puniyu_logger",
    "event",
]
command = [
    "dep:async-trait",
    "context",
    "event",
]
config = ["dep:toml"]
contact = [
    "dep:serde",
    "dep:strum",
]
context = [
    "dep:bytes",
    "adapter",
    "bot",
    "element",
    "event",
    "contact",
    "sender",
]
default = ["full"]
element = [
    "dep:serde",
    "dep:strum",
    "dep:serde_json",
    "dep:bytes",
]
event = [
    "dep:strum",
    "dep:puniyu_config",
    "dep:bytes",
    "bot",
    "element",
    "sender",
    "contact",
]
full = [
    "adapter",
    "event",
    "context",
    "account",
    "contact",
    "bot",
    "sender",
    "element",
    "server",
    "task",
    "command",
    "plugin",
    "handler",
    "version",
    "config",
    "bus",
]
handler = [
    "dep:async-trait",
    "event",
]
plugin = [
    "dep:async-trait",
    "version",
    "task",
    "command",
    "server",
    "config",
]
sender = [
    "dep:serde",
    "dep:strum",
]
server = [
    "dep:actix-web",
    "dep:flume",
]
task = ["dep:async-trait"]
version = ["dep:serde"]

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

[[test]]
name = "adapter"
path = "tests/adapter.rs"

[[test]]
name = "task"
path = "tests/task.rs"

[[test]]
name = "version"
path = "tests/version.rs"

[dependencies.actix-web]
version = "4.11.0"
optional = true

[dependencies.async-trait]
version = "0.1.89"
optional = true

[dependencies.bytes]
version = "1.11.0"
features = ["serde"]
optional = true

[dependencies.chrono]
version = "0.4.42"
features = ["serde"]
optional = true

[dependencies.derive_builder]
version = "0.20.2"
optional = true

[dependencies.flume]
version = "0.11"
optional = true

[dependencies.puniyu_config]
version = "0.7.4"
optional = true

[dependencies.puniyu_logger]
version = "0.6.4"
optional = true

[dependencies.reqwest]
version = "0.13.0"
features = [
    "json",
    "rustls",
]
optional = true
default-features = false

[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true

[dependencies.serde_json]
version = "1.0"
optional = true

[dependencies.strum]
version = "0.27.2"
features = ["derive"]
optional = true

[dependencies.thiserror]
version = "2.0.17"
optional = true

[dependencies.tokio]
version = "1.47.1"
optional = true

[dependencies.toml]
version = "0.9.5"
optional = true

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

[dev-dependencies.chrono]
version = "0.4.42"
features = ["serde"]

[dev-dependencies.tokio]
version = "1.47.1"
features = ["full"]
