mj_core/
project_picker.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6#[serde(tag = "kind", rename_all = "snake_case")]
7pub enum ProjectDiscoveryRequest {
8 Github {
9 query: String,
10 },
11 Directory {
12 path: String,
13 #[serde(default)]
14 filter: String,
15 },
16}
17
18#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
19pub struct ProjectDiscovery {
20 pub entries: Vec<ProjectEntry>,
21 pub directory: Option<String>,
22 pub parent: Option<String>,
23 pub truncated: bool,
24}
25
26#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
27pub struct ProjectEntry {
28 pub name: String,
29 pub source: String,
30 pub description: String,
31 pub kind: ProjectEntryKind,
32}
33
34#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
35#[serde(rename_all = "snake_case")]
36pub enum ProjectEntryKind {
37 Repository,
38 Directory,
39}