raffia/pos.rs
1#[cfg(feature = "serialize")]
2use serde::Serialize;
3
4/// Span represents a range of a piece of source code.
5/// It counts by offset, so it's 0-based.
6#[derive(Clone, Debug, Hash, PartialEq, Eq)]
7#[cfg_attr(feature = "serialize", derive(Serialize))]
8pub struct Span {
9 /// Start offset. (Inclusive)
10 pub start: usize,
11 /// End offset. (Exclusive)
12 pub end: usize,
13}
14
15pub trait Spanned {
16 fn span(&self) -> &Span;
17}