macro_rules! register_extensions {
($world:expr, $($ty:ty),+ $(,)?) => { ... };
($world:expr, $($ty:ty => $name:expr),+ $(,)?) => { ... };
}Expand description
Register multiple extension types for snapshot deserialization in one call.
Eliminates the manual register_ext ceremony after snapshot restore.
ยงExamples
Name-less form (uses type_name automatically):
use elevator_core::prelude::*;
use elevator_core::register_extensions;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Serialize, Deserialize)]
struct VipTag { level: u32 }
#[derive(Clone, Debug, Serialize, Deserialize)]
struct Priority { rank: u8 }
let mut sim = SimulationBuilder::demo().build().unwrap();
register_extensions!(sim.world_mut(), VipTag, Priority);Named form (explicit storage name per type):
use elevator_core::prelude::*;
use elevator_core::register_extensions;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Serialize, Deserialize)]
struct VipTag { level: u32 }
let mut sim = SimulationBuilder::demo().build().unwrap();
register_extensions!(sim.world_mut(), VipTag => "vip_tag");