@@ -182,45 +182,15 @@ impl<Pk: MiniscriptKey, Ctx: ScriptContext> fmt::Debug for Terminal<Pk, Ctx> {
182
182
fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
183
183
f. write_str ( "[" ) ?;
184
184
if let Ok ( type_map) = types:: Type :: type_check ( self ) {
185
- f. write_str ( match type_map. corr . base {
186
- types:: Base :: B => "B" ,
187
- types:: Base :: K => "K" ,
188
- types:: Base :: V => "V" ,
189
- types:: Base :: W => "W" ,
190
- } ) ?;
191
- fmt:: Write :: write_char ( f, '/' ) ?;
192
- f. write_str ( match type_map. corr . input {
193
- types:: Input :: Zero => "z" ,
194
- types:: Input :: One => "o" ,
195
- types:: Input :: OneNonZero => "on" ,
196
- types:: Input :: Any => "" ,
197
- types:: Input :: AnyNonZero => "n" ,
198
- } ) ?;
199
- if type_map. corr . dissatisfiable {
200
- fmt:: Write :: write_char ( f, 'd' ) ?;
201
- }
202
- if type_map. corr . unit {
203
- fmt:: Write :: write_char ( f, 'u' ) ?;
204
- }
205
- f. write_str ( match type_map. mall . dissat {
206
- types:: Dissat :: None => "f" ,
207
- types:: Dissat :: Unique => "e" ,
208
- types:: Dissat :: Unknown => "" ,
209
- } ) ?;
210
- if type_map. mall . safe {
211
- fmt:: Write :: write_char ( f, 's' ) ?;
212
- }
213
- if type_map. mall . non_malleable {
214
- fmt:: Write :: write_char ( f, 'm' ) ?;
215
- }
185
+ fmt_type_map ( f, type_map) ?;
216
186
} else {
217
187
f. write_str ( "TYPECHECK FAILED" ) ?;
218
188
}
219
189
f. write_str ( "]" ) ?;
220
190
if let Some ( ( ch, sub) ) = self . wrap_char ( ) {
221
191
fmt:: Write :: write_char ( f, ch) ?;
222
192
if sub. node . wrap_char ( ) . is_none ( ) {
223
- fmt :: Write :: write_char ( f , ':' ) ?;
193
+ f . write_str ( ":" ) ?;
224
194
}
225
195
write ! ( f, "{:?}" , sub)
226
196
} else {
@@ -229,6 +199,41 @@ impl<Pk: MiniscriptKey, Ctx: ScriptContext> fmt::Debug for Terminal<Pk, Ctx> {
229
199
}
230
200
}
231
201
202
+ fn fmt_type_map ( f : & mut fmt:: Formatter < ' _ > , type_map : types:: Type ) -> fmt:: Result {
203
+ f. write_str ( match type_map. corr . base {
204
+ types:: Base :: B => "B" ,
205
+ types:: Base :: K => "K" ,
206
+ types:: Base :: V => "V" ,
207
+ types:: Base :: W => "W" ,
208
+ } ) ?;
209
+ f. write_str ( "/" ) ?;
210
+ f. write_str ( match type_map. corr . input {
211
+ types:: Input :: Zero => "z" ,
212
+ types:: Input :: One => "o" ,
213
+ types:: Input :: OneNonZero => "on" ,
214
+ types:: Input :: Any => "" ,
215
+ types:: Input :: AnyNonZero => "n" ,
216
+ } ) ?;
217
+ if type_map. corr . dissatisfiable {
218
+ f. write_str ( "d" ) ?;
219
+ }
220
+ if type_map. corr . unit {
221
+ f. write_str ( "u" ) ?;
222
+ }
223
+ f. write_str ( match type_map. mall . dissat {
224
+ types:: Dissat :: None => "f" ,
225
+ types:: Dissat :: Unique => "e" ,
226
+ types:: Dissat :: Unknown => "" ,
227
+ } ) ?;
228
+ if type_map. mall . safe {
229
+ f. write_str ( "s" ) ?;
230
+ }
231
+ if type_map. mall . non_malleable {
232
+ f. write_str ( "m" ) ?;
233
+ }
234
+ Ok ( ( ) )
235
+ }
236
+
232
237
impl < Pk : MiniscriptKey , Ctx : ScriptContext > fmt:: Display for Terminal < Pk , Ctx > {
233
238
fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result { self . conditional_fmt ( f, false ) }
234
239
}
0 commit comments