@@ -380,45 +380,41 @@ pub(crate) async fn rustdoc_redirector_handler(
380380/// small wrapper around CrateDetails to limit serialized fields we hand
381381/// to the template.
382382/// Mostly to know what we have to serialize into the etag.
383- pub struct LimitedCrateDetails ( CrateDetails ) ;
383+ pub struct LimitedCrateDetails {
384+ parsed_license : Option < Vec < licenses:: LicenseSegment > > ,
385+ homepage_url : Option < String > ,
386+ documentation_url : Option < String > ,
387+ repository_url : Option < String > ,
388+ owners : Vec < ( String , String , OwnerKind ) > ,
389+ dependencies : Vec < Dependency > ,
390+ total_items : Option < i32 > ,
391+ documented_items : Option < i32 > ,
392+ }
384393
385394impl From < CrateDetails > for LimitedCrateDetails {
386395 fn from ( value : CrateDetails ) -> Self {
387- Self ( value)
388- }
389- }
390-
391- impl LimitedCrateDetails {
392- pub fn parsed_license ( & self ) -> Option < & [ licenses:: LicenseSegment ] > {
393- self . 0 . parsed_license . as_deref ( )
394- }
395-
396- pub fn homepage_url ( & self ) -> Option < & str > {
397- self . 0 . homepage_url . as_deref ( )
398- }
399-
400- pub fn documentation_url ( & self ) -> Option < & str > {
401- self . 0 . documentation_url . as_deref ( )
402- }
403-
404- pub fn repository_url ( & self ) -> Option < & str > {
405- self . 0 . repository_url . as_deref ( )
406- }
407-
408- pub fn owners ( & self ) -> & [ ( String , String , OwnerKind ) ] {
409- self . 0 . owners . as_ref ( )
410- }
411-
412- pub fn dependencies ( & self ) -> & [ Dependency ] {
413- self . 0 . dependencies . as_ref ( )
414- }
415-
416- pub fn total_items ( & self ) -> Option < i32 > {
417- self . 0 . total_items
418- }
419-
420- pub fn documented_items ( & self ) -> Option < i32 > {
421- self . 0 . documented_items
396+ let CrateDetails {
397+ parsed_license,
398+ homepage_url,
399+ documentation_url,
400+ repository_url,
401+ owners,
402+ dependencies,
403+ total_items,
404+ documented_items,
405+ ..
406+ } = value;
407+
408+ Self {
409+ total_items,
410+ documented_items,
411+ parsed_license,
412+ homepage_url,
413+ documentation_url,
414+ repository_url,
415+ owners,
416+ dependencies,
417+ }
422418 }
423419}
424420
@@ -427,14 +423,14 @@ impl bincode::Encode for LimitedCrateDetails {
427423 & self ,
428424 encoder : & mut E ,
429425 ) -> Result < ( ) , bincode:: error:: EncodeError > {
430- self . parsed_license ( ) . encode ( encoder) ?;
431- self . homepage_url ( ) . encode ( encoder) ?;
432- self . documentation_url ( ) . encode ( encoder) ?;
433- self . repository_url ( ) . encode ( encoder) ?;
434- self . owners ( ) . encode ( encoder) ?;
435- self . dependencies ( ) . encode ( encoder) ?;
436- self . total_items ( ) . encode ( encoder) ?;
437- self . documented_items ( ) . encode ( encoder) ?;
426+ self . parsed_license . encode ( encoder) ?;
427+ self . homepage_url . encode ( encoder) ?;
428+ self . documentation_url . encode ( encoder) ?;
429+ self . repository_url . encode ( encoder) ?;
430+ self . owners . encode ( encoder) ?;
431+ self . dependencies . encode ( encoder) ?;
432+ self . total_items . encode ( encoder) ?;
433+ self . documented_items . encode ( encoder) ?;
438434 Ok ( ( ) )
439435 }
440436}
0 commit comments