diff --git a/pdf/src/object/mod.rs b/pdf/src/object/mod.rs index bbdfa60..e12f29d 100644 --- a/pdf/src/object/mod.rs +++ b/pdf/src/object/mod.rs @@ -430,11 +430,19 @@ impl<T> PartialEq for MaybeRef<T> { } impl<T> Eq for MaybeRef<T> {} -#[derive(Debug, Clone, DataSize)] +#[derive(Debug, DataSize)] pub struct Lazy<T> { primitive: Primitive, _marker: PhantomData<T> } +impl<T> Clone for Lazy<T> { + fn clone(&self) -> Self { + Lazy { + primitive: self.primitive.clone(), + _marker: PhantomData + } + } +} impl<T: Object> Lazy<T> { pub fn load(&self, resolve: &impl Resolve) -> Result<T> { T::from_primitive(self.primitive.clone(), resolve)