diff --git a/crates/claims/crates/vc/src/syntax/types.rs b/crates/claims/crates/vc/src/syntax/types.rs index 9637fa1f3..bfd9027d2 100644 --- a/crates/claims/crates/vc/src/syntax/types.rs +++ b/crates/claims/crates/vc/src/syntax/types.rs @@ -29,9 +29,22 @@ pub trait TypeSerializationPolicy { /// [`RequiredType`], and more required types given by `T` implementing /// [`RequiredTypeSet`]. #[derive(Educe)] -#[educe(Debug, Default, Clone)] +#[educe(Debug, Clone)] pub struct Types(Vec, PhantomData<(B, T)>); +impl Default for Types { + fn default() -> Self { + Self( + T::REQUIRED_TYPES + .iter() + .copied() + .map(ToOwned::to_owned) + .collect(), + PhantomData, + ) + } +} + impl Types { pub fn additional_types(&self) -> &[String] { &self.0