@@ -58,14 +58,16 @@ mod block;
5858mod inline;
5959mod lex;
6060mod span;
61+ mod string;
6162mod tree;
6263
6364use span:: DiscontinuousString ;
6465use span:: Span ;
6566
6667pub use attr:: { AttributeValue , AttributeValueParts , Attributes } ;
68+ pub use string:: CowStr ;
6769
68- type CowStr < ' s > = std:: borrow:: Cow < ' s , str > ;
70+ // type CowStr<'s> = std::borrow::Cow<'s, str>;
6971
7072pub trait Render {
7173 /// Push [`Event`]s to a unicode-accepting buffer or stream.
@@ -695,10 +697,7 @@ impl<'s> Parser<'s> {
695697 inline:: Container :: InlineMath => Container :: Math { display : false } ,
696698 inline:: Container :: DisplayMath => Container :: Math { display : true } ,
697699 inline:: Container :: RawFormat => Container :: RawInline {
698- format : match self . inlines . src ( inline. span ) {
699- CowStr :: Owned ( _) => panic ! ( ) ,
700- CowStr :: Borrowed ( s) => s,
701- } ,
700+ format : self . inlines . src ( inline. span ) . take_borrowed ( ) ,
702701 } ,
703702 inline:: Container :: Subscript => Container :: Subscript ,
704703 inline:: Container :: Superscript => Container :: Superscript ,
@@ -709,22 +708,22 @@ impl<'s> Parser<'s> {
709708 inline:: Container :: Mark => Container :: Mark ,
710709 inline:: Container :: InlineLink => Container :: Link (
711710 match self . inlines . src ( inline. span ) {
712- CowStr :: Owned ( s) => s. replace ( '\n' , "" ) . into ( ) ,
713711 s @ CowStr :: Borrowed ( _) => s,
712+ s => s. replace ( '\n' , "" ) . into ( ) ,
714713 } ,
715714 LinkType :: Span ( SpanLinkType :: Inline ) ,
716715 ) ,
717716 inline:: Container :: InlineImage => Container :: Image (
718717 match self . inlines . src ( inline. span ) {
719- CowStr :: Owned ( s) => s. replace ( '\n' , "" ) . into ( ) ,
720718 s @ CowStr :: Borrowed ( _) => s,
719+ s => s. replace ( '\n' , "" ) . into ( ) ,
721720 } ,
722721 SpanLinkType :: Inline ,
723722 ) ,
724723 inline:: Container :: ReferenceLink | inline:: Container :: ReferenceImage => {
725724 let tag = match self . inlines . src ( inline. span ) {
726- CowStr :: Owned ( s) => s. replace ( '\n' , " " ) . into ( ) ,
727725 s @ CowStr :: Borrowed ( _) => s,
726+ s => s. replace ( '\n' , " " ) . into ( ) ,
728727 } ;
729728 let link_def =
730729 self . pre_pass . link_definitions . get ( tag. as_ref ( ) ) . cloned ( ) ;
@@ -762,10 +761,7 @@ impl<'s> Parser<'s> {
762761 }
763762 inline:: EventKind :: Atom ( a) => match a {
764763 inline:: Atom :: FootnoteReference => {
765- let tag = match self . inlines . src ( inline. span ) {
766- CowStr :: Borrowed ( s) => s,
767- CowStr :: Owned ( ..) => panic ! ( ) ,
768- } ;
764+ let tag = self . inlines . src ( inline. span ) . take_borrowed ( ) ;
769765 let number = self
770766 . footnote_references
771767 . iter ( )
@@ -778,10 +774,7 @@ impl<'s> Parser<'s> {
778774 |i| i + 1 ,
779775 ) ;
780776 Event :: FootnoteReference (
781- match self . inlines . src ( inline. span ) {
782- CowStr :: Borrowed ( s) => s,
783- CowStr :: Owned ( ..) => panic ! ( ) ,
784- } ,
777+ self . inlines . src ( inline. span ) . take_borrowed ( ) ,
785778 number,
786779 )
787780 }
0 commit comments