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}