Skip to main content

fields

Macro fields 

Source
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);