macro_rules! fields {
($s:ident; $($f:ident),* $(,)?) => { ... };
}Expand description
Lists the Inspector fields of a hand-written script in one line.
Every listed field must implement Param (numbers, bool, Vec3, String, Color,
asset and entity references, enums with Choice, and Local to hide a variable).
use kvas_engine::prelude::*;
#[derive(Default)]
struct Door { speed: f32, open: bool, name: String }
impl Script for Door {
fn fields(&mut self) -> Vec<Field<'_>> { fields!(self; speed, open, name) }
}
let mut door = Door::default();
assert_eq!(door.fields().len(), 3);