hub_codegen/generator/
mod.rs1#[cfg(feature = "typescript")]
4pub mod typescript;
5
6#[cfg(feature = "rust")]
7pub mod rust;
8
9use std::collections::HashMap;
10
11#[derive(Debug, Clone)]
13pub struct Warning {
14 pub location: String,
15 pub message: String,
16}
17
18impl std::fmt::Display for Warning {
19 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
20 write!(f, "{}: {}", self.location, self.message)
21 }
22}
23
24pub struct GenerationResult {
26 pub files: HashMap<String, String>,
28 pub warnings: Vec<Warning>,
30 pub file_hashes: HashMap<String, String>,
32 pub dependencies: HashMap<String, String>,
34 pub dev_dependencies: HashMap<String, String>,
36}
37
38#[derive(Debug, Clone, Copy, PartialEq, Eq)]
40pub enum TransportEnv { Ws, Browser, None }
41
42#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
44pub enum GenerateSelector {
45 #[default]
47 All,
48 Transport,
50 Rpc,
52 Plugins,
54 Smoke,
56 Package,
58}
59
60#[derive(Debug, Clone)]
62pub struct GenerationOptions {
63 pub transport: TransportEnv,
64 pub generate: GenerateSelector,
66 pub plugins_filter: Option<Vec<String>>,
68 pub smoke_transport_path: String,
70 pub backend_url: String,
72}
73
74impl Default for GenerationOptions {
75 fn default() -> Self {
76 Self {
77 transport: TransportEnv::Ws,
78 generate: GenerateSelector::All,
79 plugins_filter: None,
80 smoke_transport_path: "../transport".to_string(),
81 backend_url: "ws://localhost:4444".to_string(),
82 }
83 }
84}