katana_markdown_engine/source/
types.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4pub struct ByteRange {
5 pub start: usize,
6 pub end: usize,
7}
8
9#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
10pub struct LineColumn {
11 pub line: usize,
12 pub column: usize,
13}
14
15#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
16pub struct LineColumnRange {
17 pub start: LineColumn,
18 pub end: LineColumn,
19}
20
21#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
22pub struct RawSnippet {
23 pub text: String,
24}
25
26#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
27pub struct TextFingerprint {
28 pub algorithm: String,
29 pub value: String,
30}
31
32#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
33pub struct SourceSpan {
34 pub byte_range: ByteRange,
35 pub line_column_range: LineColumnRange,
36 pub raw: RawSnippet,
37}