Skip to main content

Mountain/IPC/WindServiceAdapters/
MountainSandboxConfiguration.rs

1
2//! Mountain's own sandbox-config payload (input to
3//! `WindServiceAdapter::convert_to_wind_configuration`).
4//! Private to this module; the trio of nested DTOs
5//! (`Versions`, `NLSConfiguration`, `ProductConfiguration`)
6//! lives inline because they're consumed only here and never
7//! constructed externally.
8
9use std::collections::HashMap;
10
11use serde::{Deserialize, Serialize};
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
14pub(super) struct Struct {
15	pub window_id:String,
16
17	pub machine_id:String,
18
19	pub session_id:String,
20
21	pub log_level:i32,
22
23	pub user_env:HashMap<String, String>,
24
25	pub app_root:String,
26
27	pub app_name:String,
28
29	pub app_uri_scheme:String,
30
31	pub app_language:String,
32
33	pub app_host:String,
34
35	pub platform:String,
36
37	pub arch:String,
38
39	pub versions:Versions,
40
41	pub exec_path:String,
42
43	pub home_dir:String,
44
45	pub tmp_dir:String,
46
47	pub user_data_dir:String,
48
49	pub backup_path:String,
50
51	pub resources_path:String,
52
53	pub vscode_cwd:String,
54
55	pub nls:NLSConfiguration,
56
57	pub product_configuration:ProductConfiguration,
58
59	pub zoom_level:f64,
60}
61
62#[derive(Debug, Clone, Serialize, Deserialize)]
63pub(super) struct Versions {
64	pub mountain:String,
65
66	pub electron:String,
67
68	pub chrome:String,
69
70	pub node:String,
71}
72
73#[derive(Debug, Clone, Serialize, Deserialize)]
74pub(super) struct NLSConfiguration {
75	pub messages:HashMap<String, String>,
76
77	pub language:String,
78
79	pub available_languages:HashMap<String, String>,
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize)]
83pub(super) struct ProductConfiguration {
84	pub name_short:String,
85
86	pub name_long:String,
87
88	pub application_name:String,
89
90	pub embedder_identifier:String,
91
92	pub is_packaged:bool,
93}