swc_ecma_regexp/parser/span_factory.rs
1use swc_common::{BytePos, Span};
2
3pub struct SpanFactory {
4 span_offset: u32,
5}
6
7impl SpanFactory {
8 pub fn new(span_offset: u32) -> Self {
9 Self { span_offset }
10 }
11
12 /// Add base offset to `Span`.
13 /// Span { start: 4, end: 12 } => Span { start: 4 + N, end: 12 + N }
14 pub fn create(&self, start: u32, end: u32) -> Span {
15 Self::span_from_u32(start + self.span_offset, end + self.span_offset)
16 }
17
18 pub fn span_from_u32(start: u32, end: u32) -> Span {
19 Span::new(BytePos(start), BytePos(end))
20 }
21}