[dependencies.async-trait]
optional = true
version = "0.1"
[dependencies.fieldx_aux]
version = "0.1.9"
[dependencies.fieldx_derive]
features = ["tracing"]
version = "0.1.9"
[dependencies.once_cell]
version = "1.20"
[dependencies.parking_lot]
optional = true
version = "0.12"
[dependencies.serde]
features = ["derive"]
optional = true
version = "1.0"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
default-features = false
features = ["sync"]
optional = true
version = "1.43"
[dev-dependencies.cargo-toolchain]
version = "0.1"
[dev-dependencies.crossbeam]
version = "0.8"
[dev-dependencies.num_cpus]
version = "1.16"
[dev-dependencies.parking_lot]
version = "0.12"
[dev-dependencies.rustc_version]
version = "0.4"
[dev-dependencies.serde]
features = ["derive"]
version = "1.0"
[dev-dependencies.serde_json]
version = "1.0.133"
[dev-dependencies.tokio]
default-features = false
features = ["macros", "rt", "rt-multi-thread", "time"]
version = "1.43"
[dev-dependencies.trybuild]
version = ">=1.0"
[features]
async = ["fieldx_derive/async", "dep:tokio", "dep:async-trait"]
diagnostics = ["fieldx_derive/diagnostics"]
send_guard = ["parking_lot/send_guard"]
serde = ["fieldx_derive/serde", "parking_lot/serde", "dep:serde"]
sync = ["fieldx_derive/sync", "dep:parking_lot"]
[lib]
name = "fieldx"
path = "src/lib.rs"
[package]
authors = ["Vadim Belman"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["concurrency", "development-tools::procedural-macro-helpers", "rust-patterns"]
description = "Procedural macro for constructing structs with lazily initialized fields, builder pattern, and serde support with a focus on declarative syntax."
edition = "2021"
exclude = ["Makefile.toml", "release.toml"]
keywords = ["lazy", "field", "macro", "builder", "struct"]
license-file = "LICENSE"
name = "fieldx"
readme = "README.md"
repository = "https://github.com/vrurg/fieldx.git"
version = "0.1.9"
[package.metadata.docs.rs]
all-features = true
[[test]]
name = "as_ref"
path = "tests/as_ref.rs"
[[test]]
name = "async"
path = "tests/async.rs"
[[test]]
name = "async_fallible"
path = "tests/async_fallible.rs"
[[test]]
name = "async_lock"
path = "tests/async_lock.rs"
[[test]]
name = "builder_const_generic"
path = "tests/builder_const_generic.rs"
[[test]]
name = "builder_generic_default"
path = "tests/builder_generic_default.rs"
[[test]]
name = "builder_init"
path = "tests/builder_init.rs"
[[test]]
name = "builder_opt_in"
path = "tests/builder_opt_in.rs"
[[test]]
name = "builder_required"
path = "tests/builder_required.rs"
[[test]]
name = "compilation"
path = "tests/compilation.rs"
[[test]]
name = "defaults"
path = "tests/defaults.rs"
[[test]]
name = "fxrc"
path = "tests/fxrc.rs"
[[test]]
name = "inner_mut_copy_clone"
path = "tests/inner_mut_copy_clone.rs"
[[test]]
name = "lazy_mode_mix"
path = "tests/lazy_mode_mix.rs"
[[test]]
name = "mutable_accessor"
path = "tests/mutable_accessor.rs"
[[test]]
name = "no_default"
path = "tests/no_default.rs"
[[test]]
name = "optional_inner_mut"
path = "tests/optional_inner_mut.rs"
[[test]]
name = "plain"
path = "tests/plain.rs"
[[test]]
name = "plain_builder"
path = "tests/plain_builder.rs"
[[test]]
name = "plain_builder_custom_error"
path = "tests/plain_builder_custom_error.rs"
[[test]]
name = "plain_builder_generics"
path = "tests/plain_builder_generics.rs"
[[test]]
name = "plain_fallible"
path = "tests/plain_fallible.rs"
[[test]]
name = "plain_generics"
path = "tests/plain_generics.rs"
[[test]]
name = "plain_option"
path = "tests/plain_option.rs"
[[test]]
name = "plain_optional"
path = "tests/plain_optional.rs"
[[test]]
name = "plain_rc"
path = "tests/plain_rc.rs"
[[test]]
name = "plain_serde"
path = "tests/plain_serde.rs"
[[test]]
name = "plain_serde_generic"
path = "tests/plain_serde_generic.rs"
[[test]]
name = "serde_attributes"
path = "tests/serde_attributes.rs"
[[test]]
name = "serde_default"
path = "tests/serde_default.rs"
[[test]]
name = "serde_reserved_keyword"
path = "tests/serde_reserved_keyword.rs"
[[test]]
name = "skip"
path = "tests/skip.rs"
[[test]]
name = "sync"
path = "tests/sync.rs"
[[test]]
name = "sync_accessor"
path = "tests/sync_accessor.rs"
[[test]]
name = "sync_accessor_arc"
path = "tests/sync_accessor_arc.rs"
[[test]]
name = "sync_all_lock"
path = "tests/sync_all_lock.rs"
[[test]]
name = "sync_arc"
path = "tests/sync_arc.rs"
[[test]]
name = "sync_builder"
path = "tests/sync_builder.rs"
[[test]]
name = "sync_builder_generics"
path = "tests/sync_builder_generics.rs"
[[test]]
name = "sync_fallible"
path = "tests/sync_fallible.rs"
[[test]]
name = "sync_generics"
path = "tests/sync_generics.rs"
[[test]]
name = "sync_lock_optional"
path = "tests/sync_lock_optional.rs"
[[test]]
name = "sync_option"
path = "tests/sync_option.rs"
[[test]]
name = "sync_optional"
path = "tests/sync_optional.rs"
[[test]]
name = "sync_optional_wo_default"
path = "tests/sync_optional_wo_default.rs"
[[test]]
name = "sync_serde"
path = "tests/sync_serde.rs"
[[test]]
name = "sync_serde_generic"
path = "tests/sync_serde_generic.rs"
[[test]]
name = "sync_serde_optional"
path = "tests/sync_serde_optional.rs"