
# Objective In order to derive `Reflect`, all of a struct's fields must implement `FromReflect`. [As part of looking into some of the work mentioned here](https://github.com/bevyengine/bevy/issues/13713#issuecomment-2364786694), I noticed that `TextureFormat` doesn't implement `Reflect`, and decided to split that into a separate PR. ## Solution I decided that `TextureFormat` should be a `reflect_value` since, although one variant has fields, most users will treat this as an opaque value set explicitly. It also substantially reduces the complexity of the implementation. For now, this implementation isn't actually used by any crates, so, I decided to not preemptively enable the feature on anything. But it's technically an option, now, and more `wgpu` types can be added in the future. ## Testing Everything compiles okay, and I can't really see how this could be done incorrectly given the above constraints.
69 lines
2.0 KiB
TOML
69 lines
2.0 KiB
TOML
[package]
|
|
name = "bevy_reflect"
|
|
version = "0.15.0-dev"
|
|
edition = "2021"
|
|
description = "Dynamically interact with rust types"
|
|
homepage = "https://bevyengine.org"
|
|
repository = "https://github.com/bevyengine/bevy"
|
|
license = "MIT OR Apache-2.0"
|
|
keywords = ["bevy"]
|
|
rust-version = "1.76.0"
|
|
|
|
[features]
|
|
default = ["smallvec", "debug", "alloc"]
|
|
# When enabled, provides Bevy-related reflection implementations
|
|
bevy = ["smallvec", "smol_str"]
|
|
glam = ["dep:glam"]
|
|
petgraph = ["dep:petgraph"]
|
|
smallvec = ["dep:smallvec"]
|
|
uuid = ["dep:uuid"]
|
|
wgpu-types = ["dep:wgpu-types"]
|
|
# Enables features useful for debugging reflection
|
|
debug = ["debug_stack"]
|
|
# When enabled, keeps track of the current serialization/deserialization context for better error messages
|
|
debug_stack = []
|
|
# When enabled, allows documentation comments to be accessed via reflection
|
|
documentation = ["bevy_reflect_derive/documentation"]
|
|
# Enables function reflection
|
|
functions = ["bevy_reflect_derive/functions"]
|
|
alloc = []
|
|
|
|
[dependencies]
|
|
# bevy
|
|
bevy_reflect_derive = { path = "derive", version = "0.15.0-dev" }
|
|
bevy_utils = { path = "../bevy_utils", version = "0.15.0-dev" }
|
|
bevy_ptr = { path = "../bevy_ptr", version = "0.15.0-dev" }
|
|
|
|
# other
|
|
erased-serde = "0.4"
|
|
downcast-rs = "1.2"
|
|
thiserror = "1.0"
|
|
serde = "1"
|
|
smallvec = { version = "1.11", optional = true }
|
|
|
|
glam = { version = "0.28", features = ["serde"], optional = true }
|
|
petgraph = { version = "0.6", features = ["serde-1"], optional = true }
|
|
smol_str = { version = "0.2.0", features = ["serde"], optional = true }
|
|
uuid = { version = "1.0", optional = true, features = ["v4", "serde"] }
|
|
wgpu-types = { version = "22", features = ["serde"], optional = true }
|
|
|
|
[dev-dependencies]
|
|
ron = "0.8.0"
|
|
rmp-serde = "1.1"
|
|
bincode = "1.3"
|
|
serde_json = "1.0"
|
|
serde = { version = "1", features = ["derive"] }
|
|
static_assertions = "1.1.0"
|
|
|
|
[[example]]
|
|
name = "reflect_docs"
|
|
path = "examples/reflect_docs.rs"
|
|
required-features = ["documentation"]
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[package.metadata.docs.rs]
|
|
rustdoc-args = ["-Zunstable-options", "--generate-link-to-definition"]
|
|
all-features = true
|