@@ -143,14 +143,41 @@ impl std::fmt::Debug for SourceMapSource {
143143 & self ,
144144 f : & mut std:: fmt:: Formatter < ' _ > ,
145145 ) -> Result < ( ) , std:: fmt:: Error > {
146- f. debug_struct ( "SourceMapSource" )
147- . field ( "name" , & self . name )
148- . field ( "value" , & self . value )
149- . field ( "source_map" , & self . source_map )
150- . field ( "original_source" , & self . original_source )
151- . field ( "inner_source_map" , & self . inner_source_map )
152- . field ( "remove_original_source" , & self . remove_original_source )
153- . finish ( )
146+ let indent = f. width ( ) . unwrap_or ( 0 ) ;
147+ let indent_str = format ! ( "{:indent$}" , "" , indent = indent) ;
148+
149+ writeln ! (
150+ f,
151+ "{indent_str}SourceMapSource::new(SourceMapSourceOptions {{"
152+ ) ?;
153+ writeln ! ( f, "{indent_str} value: {:?}," , self . value) ?;
154+ writeln ! ( f, "{indent_str} name: {:?}," , self . name) ?;
155+ writeln ! ( f, "{indent_str} source_map: {:?}," , self . source_map) ?;
156+ match & self . original_source {
157+ Some ( original_source) => {
158+ writeln ! (
159+ f,
160+ "{indent_str} original_source: Some({:?}.to_string())," ,
161+ original_source
162+ ) ?;
163+ }
164+ None => {
165+ writeln ! ( f, "{indent_str} original_source: None," ) ?;
166+ }
167+ }
168+ writeln ! (
169+ f,
170+ "{indent_str} inner_source_map: {:?}," ,
171+ self . inner_source_map
172+ ) ?;
173+ writeln ! (
174+ f,
175+ "{indent_str} remove_original_source: {:?}," ,
176+ self . remove_original_source
177+ ) ?;
178+ write ! ( f, "{indent_str}}}).boxed()" ) ?;
179+
180+ Ok ( ( ) )
154181 }
155182}
156183
@@ -730,4 +757,45 @@ mod tests {
730757 . unwrap( )
731758 ) ;
732759 }
760+
761+ #[ test]
762+ fn debug ( ) {
763+ let source = SourceMapSource :: new ( SourceMapSourceOptions {
764+ value : "hello world" ,
765+ name : "hello.txt" ,
766+ source_map : SourceMap :: from_json (
767+ r#"{
768+ "version": 3,
769+ "sources": ["hello.txt"],
770+ "mappings": "AAAA,MAAG"
771+ }"# ,
772+ )
773+ . unwrap ( ) ,
774+ original_source : Some ( "你好 世界" . to_string ( ) ) ,
775+ inner_source_map : Some (
776+ SourceMap :: from_json (
777+ r#"{
778+ "version": 3,
779+ "sources": ["hello world.txt"],
780+ "mappings": "AAAA,EAAE",
781+ "sourcesContent": ["你好✋世界"]
782+ }"# ,
783+ )
784+ . unwrap ( ) ,
785+ ) ,
786+ remove_original_source : false ,
787+ } ) ;
788+
789+ assert_eq ! (
790+ format!( "{:?}" , source) ,
791+ r#"SourceMapSource::new(SourceMapSourceOptions {
792+ value: "hello world",
793+ name: "hello.txt",
794+ source_map: SourceMap::from_json("{\"version\":3,\"sources\":[\"hello.txt\"],\"names\":[],\"mappings\":\"AAAA,MAAG\"}").unwrap(),
795+ original_source: Some("你好 世界".to_string()),
796+ inner_source_map: Some(SourceMap::from_json("{\"version\":3,\"sources\":[\"hello world.txt\"],\"sourcesContent\":[\"你好✋世界\"],\"names\":[],\"mappings\":\"AAAA,EAAE\"}").unwrap()),
797+ remove_original_source: false,
798+ }).boxed()"#
799+ ) ;
800+ }
733801}
0 commit comments