@@ -60,8 +60,8 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
6060 }
6161
6262 fn enum_data ( & mut self , data : EnumData ) {
63- let id = data. id . to_string ( ) ;
64- let scope = data. scope . to_string ( ) ;
63+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
64+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
6565 let values = make_values_str ( & [
6666 ( "id" , & id) ,
6767 ( "qualname" , & data. qualname ) ,
@@ -73,9 +73,9 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
7373 }
7474
7575 fn extern_crate ( & mut self , data : ExternCrateData ) {
76- let id = data. id . to_string ( ) ;
76+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
7777 let crate_num = data. crate_num . to_string ( ) ;
78- let scope = data. scope . to_string ( ) ;
78+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
7979 let values = make_values_str ( & [
8080 ( "id" , & id) ,
8181 ( "name" , & data. name ) ,
@@ -88,50 +88,68 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
8888 }
8989
9090 fn impl_data ( & mut self , data : ImplData ) {
91- let id = data. id . to_string ( ) ;
92- let ref_id = data. self_ref . unwrap_or ( Id :: null ( ) ) . to_string ( ) ;
93- let trait_id = data. trait_ref . unwrap_or ( Id :: null ( ) ) . to_string ( ) ;
94- let scope = data. scope . to_string ( ) ;
91+ let self_ref = data. self_ref . unwrap_or ( null_def_id ( ) ) ;
92+ let trait_ref = data. trait_ref . unwrap_or ( null_def_id ( ) ) ;
93+
94+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
95+ let ref_id = self_ref. index . as_usize ( ) . to_string ( ) ;
96+ let ref_id_crate = self_ref. krate . to_string ( ) ;
97+ let trait_id = trait_ref. index . as_usize ( ) . to_string ( ) ;
98+ let trait_id_crate = trait_ref. krate . to_string ( ) ;
99+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
95100 let values = make_values_str ( & [
96101 ( "id" , & id) ,
97102 ( "refid" , & ref_id) ,
103+ ( "refidcrate" , & ref_id_crate) ,
98104 ( "traitid" , & trait_id) ,
105+ ( "traitidcrate" , & trait_id_crate) ,
99106 ( "scopeid" , & scope)
100107 ] ) ;
101108
102109 self . record ( "impl" , data. span , values) ;
103110 }
104111
105112 fn inheritance ( & mut self , data : InheritanceData ) {
106- let base_id = data. base_id . to_string ( ) ;
107- let deriv_id = data. deriv_id . to_string ( ) ;
108- let values = make_values_str ( & [
109- ( "base" , & base_id) ,
110- ( "derived" , & deriv_id) ,
111- ] ) ;
113+ let base_id = data. base_id . index . as_usize ( ) . to_string ( ) ;
114+ let base_crate = data. base_id . krate . to_string ( ) ;
115+ let deriv_id = data. deriv_id . index . as_u32 ( ) . to_string ( ) ;
116+ let deriv_crate = data. deriv_id . krate . to_string ( ) ;
117+ let values = make_values_str ( & [
118+ ( "base" , & base_id) ,
119+ ( "basecrate" , & base_crate) ,
120+ ( "derived" , & deriv_id) ,
121+ ( "derivedcrate" , & deriv_crate)
122+ ] ) ;
112123
113124 self . record ( "inheritance" , data. span , values) ;
114125 }
115126
116127 fn function ( & mut self , data : FunctionData ) {
117- let id = data. id . to_string ( ) ;
118- let decl_id = data. declaration . unwrap_or ( Id :: null ( ) ) . to_string ( ) ;
119- let scope = data. scope . to_string ( ) ;
128+ let ( decl_id, decl_crate) = match data. declaration {
129+ Some ( id) => ( id. index . as_usize ( ) . to_string ( ) , id. krate . to_string ( ) ) ,
130+ None => ( String :: new ( ) , String :: new ( ) )
131+ } ;
132+
133+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
134+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
120135 let values = make_values_str ( & [
121136 ( "id" , & id) ,
122137 ( "qualname" , & data. qualname ) ,
123138 ( "declid" , & decl_id) ,
139+ ( "declidcrate" , & decl_crate) ,
124140 ( "scopeid" , & scope)
125141 ] ) ;
126142
127143 self . record ( "function" , data. span , values) ;
128144 }
129145
130146 fn function_ref ( & mut self , data : FunctionRefData ) {
131- let ref_id = data. ref_id . to_string ( ) ;
132- let scope = data. scope . to_string ( ) ;
147+ let ref_id = data. ref_id . index . as_usize ( ) . to_string ( ) ;
148+ let ref_crate = data. ref_id . krate . to_string ( ) ;
149+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
133150 let values = make_values_str ( & [
134151 ( "refid" , & ref_id) ,
152+ ( "refidcrate" , & ref_crate) ,
135153 ( "qualname" , "" ) ,
136154 ( "scopeid" , & scope)
137155 ] ) ;
@@ -140,11 +158,13 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
140158 }
141159
142160 fn function_call ( & mut self , data : FunctionCallData ) {
143- let ref_id = data. ref_id . to_string ( ) ;
161+ let ref_id = data. ref_id . index . as_usize ( ) . to_string ( ) ;
162+ let ref_crate = data. ref_id . krate . to_string ( ) ;
144163 let qualname = String :: new ( ) ;
145- let scope = data. scope . to_string ( ) ;
164+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
146165 let values = make_values_str ( & [
147166 ( "refid" , & ref_id) ,
167+ ( "refidcrate" , & ref_crate) ,
148168 ( "qualname" , & qualname) ,
149169 ( "scopeid" , & scope)
150170 ] ) ;
@@ -153,8 +173,8 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
153173 }
154174
155175 fn method ( & mut self , data : MethodData ) {
156- let id = data. id . to_string ( ) ;
157- let scope = data. scope . to_string ( ) ;
176+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
177+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
158178 let values = make_values_str ( & [
159179 ( "id" , & id) ,
160180 ( "qualname" , & data. qualname ) ,
@@ -165,12 +185,21 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
165185 }
166186
167187 fn method_call ( & mut self , data : MethodCallData ) {
168- let decl_id = data. decl_id . unwrap_or ( Id :: null ( ) ) . to_string ( ) ;
169- let ref_id = data. ref_id . unwrap_or ( Id :: null ( ) ) . to_string ( ) ;
170- let scope = data. scope . to_string ( ) ;
188+ let ( dcn, dck) = match data. decl_id {
189+ Some ( declid) => ( declid. index . as_usize ( ) . to_string ( ) , declid. krate . to_string ( ) ) ,
190+ None => ( String :: new ( ) , String :: new ( ) ) ,
191+ } ;
192+
193+ let ref_id = data. ref_id . unwrap_or ( null_def_id ( ) ) ;
194+
195+ let def_id = ref_id. index . as_usize ( ) . to_string ( ) ;
196+ let def_crate = ref_id. krate . to_string ( ) ;
197+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
171198 let values = make_values_str ( & [
172- ( "refid" , & ref_id) ,
173- ( "declid" , & decl_id) ,
199+ ( "refid" , & def_id) ,
200+ ( "refidcrate" , & def_crate) ,
201+ ( "declid" , & dcn) ,
202+ ( "declidcrate" , & dck) ,
174203 ( "scopeid" , & scope)
175204 ] ) ;
176205
@@ -187,7 +216,7 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
187216 }
188217
189218 fn macro_use ( & mut self , data : MacroUseData ) {
190- let scope = data. scope . to_string ( ) ;
219+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
191220 let values = make_values_str ( & [
192221 ( "callee_name" , & data. name ) ,
193222 ( "qualname" , & data. qualname ) ,
@@ -198,8 +227,8 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
198227 }
199228
200229 fn mod_data ( & mut self , data : ModData ) {
201- let id = data. id . to_string ( ) ;
202- let scope = data. scope . to_string ( ) ;
230+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
231+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
203232 let values = make_values_str ( & [
204233 ( "id" , & id) ,
205234 ( "qualname" , & data. qualname ) ,
@@ -211,11 +240,15 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
211240 }
212241
213242 fn mod_ref ( & mut self , data : ModRefData ) {
214- let ref_id = data. ref_id . unwrap_or ( Id :: null ( ) ) . to_string ( ) ;
243+ let ( ref_id, ref_crate) = match data. ref_id {
244+ Some ( rid) => ( rid. index . as_usize ( ) . to_string ( ) , rid. krate . to_string ( ) ) ,
245+ None => ( 0 . to_string ( ) , 0 . to_string ( ) )
246+ } ;
215247
216- let scope = data. scope . to_string ( ) ;
248+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
217249 let values = make_values_str ( & [
218250 ( "refid" , & ref_id) ,
251+ ( "refidcrate" , & ref_crate) ,
219252 ( "qualname" , & data. qualname ) ,
220253 ( "scopeid" , & scope)
221254 ] ) ;
@@ -224,9 +257,9 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
224257 }
225258
226259 fn struct_data ( & mut self , data : StructData ) {
227- let id = data. id . to_string ( ) ;
228- let ctor_id = data. ctor_id . to_string ( ) ;
229- let scope = data. scope . to_string ( ) ;
260+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
261+ let ctor_id = data. ctor_id . index . as_u32 ( ) . to_string ( ) ;
262+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
230263 let values = make_values_str ( & [
231264 ( "id" , & id) ,
232265 ( "ctor_id" , & ctor_id) ,
@@ -239,8 +272,8 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
239272 }
240273
241274 fn struct_variant ( & mut self , data : StructVariantData ) {
242- let id = data. id . to_string ( ) ;
243- let scope = data. scope . to_string ( ) ;
275+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
276+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
244277 let values = make_values_str ( & [
245278 ( "id" , & id) ,
246279 ( "ctor_id" , & id) ,
@@ -254,8 +287,8 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
254287 }
255288
256289 fn trait_data ( & mut self , data : TraitData ) {
257- let id = data. id . to_string ( ) ;
258- let scope = data. scope . to_string ( ) ;
290+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
291+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
259292 let values = make_values_str ( & [
260293 ( "id" , & id) ,
261294 ( "qualname" , & data. qualname ) ,
@@ -267,8 +300,8 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
267300 }
268301
269302 fn tuple_variant ( & mut self , data : TupleVariantData ) {
270- let id = data. id . to_string ( ) ;
271- let scope = data. scope . to_string ( ) ;
303+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
304+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
272305 let values = make_values_str ( & [
273306 ( "id" , & id) ,
274307 ( "name" , & data. name ) ,
@@ -282,10 +315,15 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
282315 }
283316
284317 fn type_ref ( & mut self , data : TypeRefData ) {
285- let ref_id = data. ref_id . unwrap_or ( Id :: null ( ) ) . to_string ( ) ;
286- let scope = data. scope . to_string ( ) ;
318+ let ( ref_id, ref_crate) = match data. ref_id {
319+ Some ( id) => ( id. index . as_usize ( ) . to_string ( ) , id. krate . to_string ( ) ) ,
320+ None => ( 0 . to_string ( ) , 0 . to_string ( ) )
321+ } ;
322+
323+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
287324 let values = make_values_str ( & [
288325 ( "refid" , & ref_id) ,
326+ ( "refidcrate" , & ref_crate) ,
289327 ( "qualname" , & data. qualname ) ,
290328 ( "scopeid" , & scope)
291329 ] ) ;
@@ -294,7 +332,7 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
294332 }
295333
296334 fn typedef ( & mut self , data : TypedefData ) {
297- let id = data. id . to_string ( ) ;
335+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
298336 let values = make_values_str ( & [
299337 ( "id" , & id) ,
300338 ( "qualname" , & data. qualname ) ,
@@ -305,12 +343,16 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
305343 }
306344
307345 fn use_data ( & mut self , data : UseData ) {
308- let id = data. id . to_string ( ) ;
309- let mod_id = data. mod_id . unwrap_or ( Id :: null ( ) ) . to_string ( ) ;
310- let scope = data. scope . to_string ( ) ;
346+ let mod_id = data. mod_id . unwrap_or ( null_def_id ( ) ) ;
347+
348+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
349+ let ref_id = mod_id. index . as_usize ( ) . to_string ( ) ;
350+ let ref_crate = mod_id. krate . to_string ( ) ;
351+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
311352 let values = make_values_str ( & [
312353 ( "id" , & id) ,
313- ( "mod_id" , & mod_id) ,
354+ ( "refid" , & ref_id) ,
355+ ( "refidcrate" , & ref_crate) ,
314356 ( "name" , & data. name ) ,
315357 ( "scopeid" , & scope)
316358 ] ) ;
@@ -321,8 +363,8 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
321363 fn use_glob ( & mut self , data : UseGlobData ) {
322364 let names = data. names . join ( ", " ) ;
323365
324- let id = data. id . to_string ( ) ;
325- let scope = data. scope . to_string ( ) ;
366+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
367+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
326368 let values = make_values_str ( & [
327369 ( "id" , & id) ,
328370 ( "value" , & names) ,
@@ -333,8 +375,8 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
333375 }
334376
335377 fn variable ( & mut self , data : VariableData ) {
336- let id = data. id . to_string ( ) ;
337- let scope = data. scope . to_string ( ) ;
378+ let id = data. id . index . as_u32 ( ) . to_string ( ) ;
379+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
338380 let values = make_values_str ( & [
339381 ( "id" , & id) ,
340382 ( "name" , & data. name ) ,
@@ -348,10 +390,12 @@ impl<'b, W: Write + 'b> Dump for CsvDumper<'b, W> {
348390 }
349391
350392 fn variable_ref ( & mut self , data : VariableRefData ) {
351- let id = data. ref_id . to_string ( ) ;
352- let scope = data. scope . to_string ( ) ;
393+ let ref_id = data. ref_id . index . as_usize ( ) . to_string ( ) ;
394+ let ref_crate = data. ref_id . krate . to_string ( ) ;
395+ let scope = data. scope . index . as_u32 ( ) . to_string ( ) ;
353396 let values = make_values_str ( & [
354- ( "id" , & id) ,
397+ ( "refid" , & ref_id) ,
398+ ( "refidcrate" , & ref_crate) ,
355399 ( "qualname" , "" ) ,
356400 ( "scopeid" , & scope)
357401 ] ) ;
0 commit comments