Skip to main content

runmat_test/descriptor/
source.rs

1use 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}