alef_core/config/
output.rs1use serde::{Deserialize, Serialize};
2use serde_json::Value as JsonValue;
3use std::collections::HashMap;
4use std::path::PathBuf;
5
6#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7pub struct ExcludeConfig {
8 #[serde(default)]
9 pub types: Vec<String>,
10 #[serde(default)]
11 pub functions: Vec<String>,
12 #[serde(default)]
14 pub methods: Vec<String>,
15}
16
17#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18pub struct IncludeConfig {
19 #[serde(default)]
20 pub types: Vec<String>,
21 #[serde(default)]
22 pub functions: Vec<String>,
23}
24
25#[derive(Debug, Clone, Default, Serialize, Deserialize)]
26pub struct OutputConfig {
27 pub python: Option<PathBuf>,
28 pub node: Option<PathBuf>,
29 pub ruby: Option<PathBuf>,
30 pub php: Option<PathBuf>,
31 pub elixir: Option<PathBuf>,
32 pub wasm: Option<PathBuf>,
33 pub ffi: Option<PathBuf>,
34 pub go: Option<PathBuf>,
35 pub java: Option<PathBuf>,
36 pub csharp: Option<PathBuf>,
37 pub r: Option<PathBuf>,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
41pub struct ScaffoldConfig {
42 pub description: Option<String>,
43 pub license: Option<String>,
44 pub repository: Option<String>,
45 pub homepage: Option<String>,
46 #[serde(default)]
47 pub authors: Vec<String>,
48 #[serde(default)]
49 pub keywords: Vec<String>,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
53pub struct ReadmeConfig {
54 pub template_dir: Option<PathBuf>,
55 pub snippets_dir: Option<PathBuf>,
56 pub config: Option<PathBuf>,
58 pub output_pattern: Option<String>,
59 pub discord_url: Option<String>,
61 pub banner_url: Option<String>,
63 #[serde(default)]
67 pub languages: HashMap<String, JsonValue>,
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize)]
71pub struct LintConfig {
72 pub format: Option<String>,
73 pub check: Option<String>,
74 pub typecheck: Option<String>,
75}
76
77#[derive(Debug, Clone, Serialize, Deserialize, Default)]
78pub struct TestConfig {
79 pub command: Option<String>,
81 pub e2e: Option<String>,
83}
84
85#[derive(Debug, Clone, Serialize, Deserialize)]
87pub struct TextReplacement {
88 pub path: String,
90 pub search: String,
92 pub replace: String,
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize, Default)]
98pub struct SyncConfig {
99 #[serde(default)]
101 pub extra_paths: Vec<String>,
102 #[serde(default)]
104 pub text_replacements: Vec<TextReplacement>,
105}