//! Byte-range source positions.
/// A byte range into the source string: `[start, end)`.
////// Positions are stored as byte offsets (ADR-0008); a 1-based line is attached
/// to each [`crate::Datum`] separately, and column is derived on demand.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]pubstructSpan{/// Start byte offset (inclusive).
pubstart:u32,
/// End byte offset (exclusive).
pubend:u32,
}implSpan{/// Construct a span from a start (inclusive) and end (exclusive) byte offset.
pubfnnew(start:u32, end:u32)->Self{
Span { start, end }}/// The source text this span covers. Zero-copy.
pubfntext<'a>(&self, source:&'astr)->&'astr{&source[self.start asusize..self.end asusize]}}