@@ -277,11 +277,11 @@ impl LocalManifest {
277
277
let mut embedded = None ;
278
278
if is_embedded ( path) {
279
279
let source = ScriptSource :: parse ( & data) ?;
280
- if let Some ( frontmatter) = source. frontmatter ( ) {
281
- embedded = Some ( Embedded :: exists ( & data , frontmatter) ) ;
282
- data = frontmatter. to_owned ( ) ;
283
- } else if let Some ( shebang) = source. shebang ( ) {
284
- embedded = Some ( Embedded :: after ( & data , shebang) ) ;
280
+ if let Some ( frontmatter) = source. frontmatter_span ( ) {
281
+ embedded = Some ( Embedded :: exists ( frontmatter) ) ;
282
+ data = source . frontmatter ( ) . unwrap ( ) . to_owned ( ) ;
283
+ } else if let Some ( shebang) = source. shebang_span ( ) {
284
+ embedded = Some ( Embedded :: after ( shebang) ) ;
285
285
data = String :: new ( ) ;
286
286
} else {
287
287
embedded = Some ( Embedded :: start ( ) ) ;
@@ -592,33 +592,15 @@ impl Embedded {
592
592
Self :: Implicit ( 0 )
593
593
}
594
594
595
- fn after ( input : & str , after : & str ) -> Self {
596
- let span = substr_span ( input, after) ;
597
- let end = span. end ;
598
- Self :: Implicit ( end)
595
+ fn after ( after : std:: ops:: Range < usize > ) -> Self {
596
+ Self :: Implicit ( after. end )
599
597
}
600
598
601
- fn exists ( input : & str , exists : & str ) -> Self {
602
- let span = substr_span ( input, exists) ;
603
- Self :: Explicit ( span)
599
+ fn exists ( exists : std:: ops:: Range < usize > ) -> Self {
600
+ Self :: Explicit ( exists)
604
601
}
605
602
}
606
603
607
- fn substr_span ( haystack : & str , needle : & str ) -> std:: ops:: Range < usize > {
608
- let haystack_start_ptr = haystack. as_ptr ( ) ;
609
- let haystack_end_ptr = haystack[ haystack. len ( ) ..haystack. len ( ) ] . as_ptr ( ) ;
610
-
611
- let needle_start_ptr = needle. as_ptr ( ) ;
612
- let needle_end_ptr = needle[ needle. len ( ) ..needle. len ( ) ] . as_ptr ( ) ;
613
-
614
- assert ! ( needle_end_ptr < haystack_end_ptr) ;
615
- assert ! ( haystack_start_ptr <= needle_start_ptr) ;
616
- let start = needle_start_ptr as usize - haystack_start_ptr as usize ;
617
- let end = start + needle. len ( ) ;
618
-
619
- start..end
620
- }
621
-
622
604
#[ derive( Copy , Clone , PartialEq , Eq , PartialOrd , Ord ) ]
623
605
enum DependencyStatus {
624
606
None ,
0 commit comments