runmat_test/descriptor/
source.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
4pub struct SourceDescriptor {
5 pub owner_identity: String,
6 pub relative_path: String,
7 pub semantic_path: String,
8 pub span: SourceSpan,
9}
10
11#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize, Deserialize)]
12pub struct SourceSpan {
13 pub start_byte: u32,
14 pub end_byte: u32,
15 pub start_line: u32,
16 pub start_column: u32,
17 pub end_line: u32,
18 pub end_column: u32,
19}
20
21impl SourceSpan {
22 pub fn is_valid(self) -> bool {
23 self.start_byte <= self.end_byte
24 && (self.start_line, self.start_column) <= (self.end_line, self.end_column)
25 }
26}