1use serde::{Deserialize, Serialize};
2use std::path::PathBuf;
3
4use crate::{Language, Span};
5
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
7#[serde(rename_all = "snake_case")]
8pub enum ChunkKind {
9 Function,
10 Method,
11 Struct,
12 Enum,
13 Trait,
14 Impl,
15 Module,
16 Class,
17 File,
18}
19
20#[derive(Debug, Clone, Serialize, Deserialize)]
21pub struct Chunk {
22 pub id: String,
24 pub path: PathBuf,
26 pub language: Language,
28 pub kind: ChunkKind,
30 pub name: Option<String>,
32 pub content: String,
34 pub span: Span,
36 pub doc: Option<String>,
38}