@@ -189,6 +189,29 @@ where
189189 }
190190}
191191
192+ impl < T , D > RepositoryStorage < D > for & T
193+ where
194+ T : RepositoryStorage < D > ,
195+ D : DataInterchange + Sync ,
196+ {
197+ fn store_metadata < ' a > (
198+ & ' a self ,
199+ meta_path : & MetadataPath ,
200+ version : MetadataVersion ,
201+ metadata : & ' a mut ( dyn AsyncRead + Send + Unpin ) ,
202+ ) -> BoxFuture < ' a , Result < ( ) > > {
203+ ( * * self ) . store_metadata ( meta_path, version, metadata)
204+ }
205+
206+ fn store_target < ' a > (
207+ & ' a self ,
208+ target_path : & TargetPath ,
209+ target : & ' a mut ( dyn AsyncRead + Send + Unpin ) ,
210+ ) -> BoxFuture < ' a , Result < ( ) > > {
211+ ( * * self ) . store_target ( target_path, target)
212+ }
213+ }
214+
192215impl < T , D > RepositoryStorage < D > for & mut T
193216where
194217 T : RepositoryStorage < D > ,
@@ -317,6 +340,28 @@ where
317340 }
318341}
319342
343+ impl < D > RepositoryStorage < D > for & dyn RepositoryStorage < D >
344+ where
345+ D : DataInterchange + Sync ,
346+ {
347+ fn store_metadata < ' a > (
348+ & ' a self ,
349+ meta_path : & MetadataPath ,
350+ version : MetadataVersion ,
351+ metadata : & ' a mut ( dyn AsyncRead + Send + Unpin ) ,
352+ ) -> BoxFuture < ' a , Result < ( ) > > {
353+ ( * * self ) . store_metadata ( meta_path, version, metadata)
354+ }
355+
356+ fn store_target < ' a > (
357+ & ' a self ,
358+ target_path : & TargetPath ,
359+ target : & ' a mut ( dyn AsyncRead + Send + Unpin ) ,
360+ ) -> BoxFuture < ' a , Result < ( ) > > {
361+ ( * * self ) . store_target ( target_path, target)
362+ }
363+ }
364+
320365impl < D > RepositoryStorage < D > for & mut dyn RepositoryStorage < D >
321366where
322367 D : DataInterchange + Sync ,
0 commit comments