@@ -61,6 +61,30 @@ impl std::fmt::Display for VersionInfo {
61
61
}
62
62
}
63
63
64
+ impl std:: fmt:: Debug for VersionInfo {
65
+ fn fmt ( & self , f : & mut std:: fmt:: Formatter ) -> std:: fmt:: Result {
66
+ write ! (
67
+ f,
68
+ "VersionInfo {{ crate_name: \" {}\" , major: {}, minor: {}, patch: {}" ,
69
+ self . crate_name, self . major, self . minor, self . patch,
70
+ ) ?;
71
+ match self . commit_hash {
72
+ Some ( _) => {
73
+ write ! (
74
+ f,
75
+ ", commit_hash: \" {}\" , commit_date: \" {}\" }}" ,
76
+ self . commit_hash. clone( ) . unwrap_or_default( ) . trim( ) ,
77
+ self . commit_date. clone( ) . unwrap_or_default( ) . trim( )
78
+ ) ?;
79
+ } ,
80
+ None => {
81
+ write ! ( f, " }}" ) ?;
82
+ } ,
83
+ }
84
+ Ok ( ( ) )
85
+ }
86
+ }
87
+
64
88
pub fn get_channel ( ) -> Option < String > {
65
89
if let Ok ( channel) = env:: var ( "CFG_RELEASE_CHANNEL" ) {
66
90
Some ( channel)
@@ -105,8 +129,17 @@ mod test {
105
129
#[ test]
106
130
fn test_display_local ( ) {
107
131
let vi = get_version_info ! ( ) ;
108
- let fmt = format ! ( "{}" , vi) ;
109
- assert_eq ! ( fmt, "rustc_tools_util 0.1.0" ) ;
132
+ assert_eq ! ( vi. to_string( ) , "rustc_tools_util 0.1.0" ) ;
133
+ }
134
+
135
+ #[ test]
136
+ fn test_debug_local ( ) {
137
+ let vi = get_version_info ! ( ) ;
138
+ let s = format ! ( "{:?}" , vi) ;
139
+ assert_eq ! (
140
+ s,
141
+ "VersionInfo { crate_name: \" rustc_tools_util\" , major: 0, minor: 1, patch: 0 }"
142
+ ) ;
110
143
}
111
144
112
145
}
0 commit comments