Skip to main content

Mountain/IPC/WindServiceAdapters/
MountainSandboxConfiguration.rs

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