Skip to main content

register_extensions

Macro register_extensions 

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