Vendor dependencies for 0.3.0 release

This commit is contained in:
2025-09-27 10:29:08 -05:00
parent 0c8d39d483
commit 82ab7f317b
26803 changed files with 16134934 additions and 0 deletions

68
vendor/valuable/examples/hello_world.rs vendored Normal file
View File

@@ -0,0 +1,68 @@
use valuable::*;
struct HelloWorld {
hello: &'static str,
world: World,
}
struct World {
answer: usize,
}
static HELLO_WORLD_FIELDS: &[NamedField<'static>] =
&[NamedField::new("hello"), NamedField::new("world")];
impl Structable for HelloWorld {
fn definition(&self) -> StructDef<'_> {
StructDef::new_static("HelloWorld", Fields::Named(HELLO_WORLD_FIELDS))
}
}
impl Valuable for HelloWorld {
fn as_value(&self) -> Value<'_> {
Value::Structable(self)
}
fn visit(&self, v: &mut dyn Visit) {
v.visit_named_fields(&NamedValues::new(
HELLO_WORLD_FIELDS,
&[Value::String(self.hello), Value::Structable(&self.world)],
));
}
}
static WORLD_FIELDS: &[NamedField<'static>] = &[NamedField::new("answer")];
impl Valuable for World {
fn as_value(&self) -> Value<'_> {
Value::Structable(self)
}
fn visit(&self, v: &mut dyn Visit) {
v.visit_named_fields(&NamedValues::new(
WORLD_FIELDS,
&[Value::Usize(self.answer)],
));
}
}
impl Structable for World {
fn definition(&self) -> StructDef<'_> {
StructDef::new_static("World", Fields::Named(WORLD_FIELDS))
}
}
fn main() {
let hello_world = HelloWorld {
hello: "wut",
world: World { answer: 42 },
};
let value = Value::Structable(&hello_world);
println!("{:#?}", value);
let slice = &[1, 2, 3][..];
let value = &slice as &dyn Valuable;
println!("{:?}", value);
}