@@ -186,7 +186,7 @@ impl Term {
186186 if element. text . is_empty ( ) {
187187 continue ;
188188 }
189- write_bg_span ( & mut buffer, "tspan" , & element. style , & element. text ) ;
189+ write_bg_span ( & mut buffer, SpanKind :: Tspan , & element. style , & element. text ) ;
190190 }
191191 // HACK: must close tspan on newline to include them in copy/paste
192192 writeln ! ( & mut buffer) . unwrap ( ) ;
@@ -198,7 +198,7 @@ impl Term {
198198 if element. text . is_empty ( ) {
199199 continue ;
200200 }
201- write_fg_span ( & mut buffer, "tspan" , element, & element. text ) ;
201+ write_fg_span ( & mut buffer, SpanKind :: Tspan , element, & element. text ) ;
202202 }
203203 // HACK: must close tspan on newline to include them in copy/paste
204204 writeln ! ( & mut buffer) . unwrap ( ) ;
@@ -312,7 +312,7 @@ impl Term {
312312 if element. text . is_empty ( ) {
313313 continue ;
314314 }
315- write_bg_span ( buffer, "span" , & element. style , & element. text ) ;
315+ write_bg_span ( buffer, SpanKind :: Span , & element. style , & element. text ) ;
316316 }
317317 buffer. write_str ( br) . unwrap ( ) ;
318318 }
@@ -321,7 +321,7 @@ impl Term {
321321 if element. text . is_empty ( ) {
322322 continue ;
323323 }
324- write_fg_span ( buffer, "span" , element, & element. text ) ;
324+ write_fg_span ( buffer, SpanKind :: Span , element, & element. text ) ;
325325 }
326326 buffer. write_str ( br) . unwrap ( ) ;
327327 }
@@ -430,7 +430,22 @@ fn write_effects_in_use(buffer: &mut String, elements: &[adapter::Element]) {
430430 }
431431}
432432
433- fn write_fg_span ( buffer : & mut String , span : & str , element : & adapter:: Element , fragment : & str ) {
433+ #[ derive( PartialEq ) ]
434+ enum SpanKind {
435+ Tspan ,
436+ Span ,
437+ }
438+
439+ impl std:: fmt:: Display for SpanKind {
440+ fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
441+ match self {
442+ Self :: Tspan => f. write_str ( "tspan" ) ,
443+ Self :: Span => f. write_str ( "span" ) ,
444+ }
445+ }
446+ }
447+
448+ fn write_fg_span ( buffer : & mut String , span : SpanKind , element : & adapter:: Element , fragment : & str ) {
434449 use std:: fmt:: Write as _;
435450 let style = element. style ;
436451 let fg_color = style. get_fg_color ( ) . map ( |c| color_name ( FG_PREFIX , c) ) ;
@@ -508,7 +523,7 @@ fn write_fg_span(buffer: &mut String, span: &str, element: &adapter::Element, fr
508523 write ! ( buffer, r#"</{span}>"# ) . unwrap ( ) ;
509524}
510525
511- fn write_bg_span ( buffer : & mut String , span : & str , style : & anstyle:: Style , fragment : & str ) {
526+ fn write_bg_span ( buffer : & mut String , span : SpanKind , style : & anstyle:: Style , fragment : & str ) {
512527 use std:: fmt:: Write as _;
513528 use unicode_width:: UnicodeWidthStr ;
514529
0 commit comments