@@ -5,17 +5,18 @@ use indexmap::IndexMap;
55use serde_yaml:: Value ;
66
77#[ derive( Clone ) ]
8- struct Trace ( Option < Rc < Box < ( String , Trace ) > > > ) ;
8+ struct Trace ( Option < Rc < ( String , Trace ) > > ) ;
99
1010impl Trace {
1111 pub fn empty ( ) -> Self {
1212 Trace ( None )
1313 }
1414
1515 pub fn add < T : ToString > ( & self , seg : T ) -> Self {
16- Trace ( Some ( Rc :: new ( Box :: new ( ( seg. to_string ( ) , self . clone ( ) ) ) ) ) )
16+ Trace ( Some ( Rc :: new ( ( seg. to_string ( ) , self . clone ( ) ) ) ) )
1717 }
1818
19+ #[ allow( clippy:: inherent_to_string) ]
1920 pub fn to_string ( & self ) -> String {
2021 let mut str = String :: new ( ) ;
2122 fn add ( buf : & mut String , trace : & Trace ) {
@@ -44,11 +45,7 @@ impl<'a> Val<'a> {
4445 fn create ( value : & ' a Value , trace : Trace ) -> anyhow:: Result < Self > {
4546 match value {
4647 Value :: Mapping ( map) => {
47- if map
48- . into_iter ( )
49- . next ( )
50- . map_or ( false , |( k, _) | k. eq ( "$select" ) )
51- {
48+ if map. into_iter ( ) . next ( ) . is_some_and ( |( k, _) | k. eq ( "$select" ) ) {
5249 let ( v, t) = Self :: select ( map, trace. clone ( ) ) ?;
5350 return Self :: create ( v, t) ;
5451 }
@@ -66,12 +63,12 @@ impl<'a> Val<'a> {
6663 map : & ' a serde_yaml:: Mapping ,
6764 trace : Trace ,
6865 ) -> anyhow:: Result < ( & ' a Value , Trace ) > {
69- if map. get ( & Value :: from ( "$select" ) ) . unwrap ( ) == "os" {
70- if let Some ( v) = map. get ( & Value :: from ( OS ) ) {
66+ if map. get ( Value :: from ( "$select" ) ) . unwrap ( ) == "os" {
67+ if let Some ( v) = map. get ( Value :: from ( OS ) ) {
7168 return Ok ( ( v, trace. add ( OS ) ) ) ;
7269 }
7370
74- if let Some ( v) = map. get ( & Value :: from ( "$else" ) ) {
71+ if let Some ( v) = map. get ( Value :: from ( "$else" ) ) {
7572 return Ok ( ( v, trace. add ( "$else" ) ) ) ;
7673 }
7774
@@ -110,7 +107,7 @@ impl<'a> Val<'a> {
110107 } )
111108 }
112109
113- pub fn as_array ( & self ) -> anyhow:: Result < Vec < Val > > {
110+ pub fn as_array ( & ' _ self ) -> anyhow:: Result < Vec < Val < ' _ > > > {
114111 self
115112 . 0
116113 . as_sequence ( )
@@ -123,7 +120,7 @@ impl<'a> Val<'a> {
123120 . collect :: < anyhow:: Result < Vec < _ > > > ( )
124121 }
125122
126- pub fn as_object ( & self ) -> anyhow:: Result < IndexMap < Value , Val > > {
123+ pub fn as_object ( & ' _ self ) -> anyhow:: Result < IndexMap < Value , Val < ' _ > > > {
127124 self
128125 . 0
129126 . as_mapping ( )
@@ -138,7 +135,7 @@ impl<'a> Val<'a> {
138135 item : & ' a Value ,
139136 trace : & ' a Trace ,
140137 ) -> anyhow:: Result < Val < ' a > > {
141- Ok ( Val :: create ( item, trace. add ( value_to_string ( k) ?) ) ? )
138+ Val :: create ( item, trace. add ( value_to_string ( k) ?) )
142139 }
143140 Ok ( ( k. to_owned ( ) , mk_val ( k, item, & self . 1 ) ?) )
144141 } )
0 commit comments