Skip to main content

katana_markdown_engine/source/
types.rs

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