@@ -55,6 +55,7 @@ pub(crate) static FIELDS: [&str; 2] = [VALUE_FIELD, DEFINITION_FIELD];
5555/// Location where a config value is defined.
5656#[ derive( Clone , Debug , Eq ) ]
5757pub enum Definition {
58+ BuiltIn ,
5859 /// Defined in a `.cargo/config`, includes the path to the file.
5960 Path ( PathBuf ) ,
6061 /// Defined in an environment variable, includes the environment key.
@@ -90,7 +91,7 @@ impl Definition {
9091 pub fn root < ' a > ( & ' a self , gctx : & ' a GlobalContext ) -> & ' a Path {
9192 match self {
9293 Definition :: Path ( p) | Definition :: Cli ( Some ( p) ) => p. parent ( ) . unwrap ( ) . parent ( ) . unwrap ( ) ,
93- Definition :: Environment ( _) | Definition :: Cli ( None ) => gctx. cwd ( ) ,
94+ Definition :: Environment ( _) | Definition :: Cli ( None ) | Definition :: BuiltIn => gctx. cwd ( ) ,
9495 }
9596 }
9697
@@ -102,7 +103,10 @@ impl Definition {
102103 ( self , other) ,
103104 ( Definition :: Cli ( _) , Definition :: Environment ( _) )
104105 | ( Definition :: Cli ( _) , Definition :: Path ( _) )
106+ | ( Definition :: Cli ( _) , Definition :: BuiltIn )
105107 | ( Definition :: Environment ( _) , Definition :: Path ( _) )
108+ | ( Definition :: Environment ( _) , Definition :: BuiltIn )
109+ | ( Definition :: Path ( _) , Definition :: BuiltIn )
106110 )
107111 }
108112}
@@ -123,6 +127,16 @@ impl fmt::Display for Definition {
123127 Definition :: Path ( p) | Definition :: Cli ( Some ( p) ) => p. display ( ) . fmt ( f) ,
124128 Definition :: Environment ( key) => write ! ( f, "environment variable `{}`" , key) ,
125129 Definition :: Cli ( None ) => write ! ( f, "--config cli option" ) ,
130+ Definition :: BuiltIn => write ! ( f, "default" ) ,
131+ }
132+ }
133+ }
134+
135+ impl < T > From < T > for Value < T > {
136+ fn from ( val : T ) -> Self {
137+ Self {
138+ val,
139+ definition : Definition :: BuiltIn ,
126140 }
127141 }
128142}
0 commit comments