From d10552031890ec09937d1b7a0dea1e68b0daf79a Mon Sep 17 00:00:00 2001 From: HampusM Date: Sun, 5 Jul 2026 00:40:35 +0200 Subject: feat(engine): add try_write_new_to fn to enum variant reflection --- engine-reflection/src/lib.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'engine-reflection/src') diff --git a/engine-reflection/src/lib.rs b/engine-reflection/src/lib.rs index 9f347fa..3451442 100644 --- a/engine-reflection/src/lib.rs +++ b/engine-reflection/src/lib.rs @@ -177,6 +177,27 @@ pub struct EnumVariant pub fields: Option, pub discriminant: EnumDiscriminant, + + pub try_write_new_to: fn( + dst: &mut dyn Any, + fields: &mut dyn Iterator>, + ) -> Result<(), EnumVariantWriteNewToError>, +} + +#[derive(Debug, thiserror::Error)] +pub enum EnumVariantWriteNewToError +{ + #[error("Destination must be the same type as the variant's enum")] + WrongDstType, + + #[error("Too few fields are specified")] + TooFewFields, + + #[error("Too many fields are specified")] + TooManyFields, + + #[error("A field has the wrong type")] + WrongFieldType, } #[derive(Debug, Clone)] -- cgit v1.2.3-18-g5258