examples/reflection/
reflection_runtime_nested_component.rs1use crate::z_ignore_test_common::*;
2
3use flecs_ecs::prelude::*;
4
5fn main() {
6 let world = World::new();
7
8 let point = world
9 .component_untyped_named("Point")
10 .member(f32::id(), "x")
11 .member(f32::id(), "y");
12
13 let line = world
14 .component_untyped_named("Line")
15 .member(point, "start")
16 .member(point, "stop");
17
18 let e = unsafe { world.entity().add_id_unchecked(line) };
20
21 let ptr = e.get_untyped_mut(line);
22
23 let mut cur = unsafe { world.cursor_id(line, ptr) };
24
25 #[rustfmt::skip]
26 fn cursor(cur: &mut Cursor) {
27 cur.push(); cur.push(); cur.set_float(10.0); cur.next(); cur.set_float(20.0); cur.pop(); cur.next(); cur.push(); cur.set_float(30.0); cur.next(); cur.set_float(40.0); cur.pop(); cur.pop(); }
41
42 cursor(&mut cur);
45
46 println!("{:?}", unsafe { world.to_expr_id(line, ptr) });
48
49 }
52
53#[cfg(feature = "flecs_nightly_tests")]
54#[test]
55fn test() {
56 let output_capture = OutputCapture::capture().unwrap();
57 main();
58 output_capture.test("reflection_runtime_nested_component".to_string());
59}