libsubconverter/settings/external/
conversions.rs1use super::external_struct::ExternalSettings;
2use super::ini_external::IniExternalSettings;
3use super::toml_external::TomlExternalSettings;
4use super::yaml_external::YamlExternalSettings;
5
6impl From<YamlExternalSettings> for ExternalSettings {
12 fn from(yaml_settings: YamlExternalSettings) -> Self {
13 let mut settings = ExternalSettings::default();
14
15 settings.clash_rule_base = yaml_settings.custom.rule_bases.clash_rule_base;
17 settings.surge_rule_base = yaml_settings.custom.rule_bases.surge_rule_base;
18 settings.surfboard_rule_base = yaml_settings.custom.rule_bases.surfboard_rule_base;
19 settings.mellow_rule_base = yaml_settings.custom.rule_bases.mellow_rule_base;
20 settings.quan_rule_base = yaml_settings.custom.rule_bases.quan_rule_base;
21 settings.quanx_rule_base = yaml_settings.custom.rule_bases.quanx_rule_base;
22 settings.loon_rule_base = yaml_settings.custom.rule_bases.loon_rule_base;
23 settings.sssub_rule_base = yaml_settings.custom.rule_bases.sssub_rule_base;
24 settings.singbox_rule_base = yaml_settings.custom.rule_bases.singbox_rule_base;
25
26 settings.enable_rule_generator =
28 Some(yaml_settings.custom.rule_generation.enable_rule_generator);
29 settings.overwrite_original_rules = Some(
30 yaml_settings
31 .custom
32 .rule_generation
33 .overwrite_original_rules,
34 );
35
36 settings.add_emoji = yaml_settings.custom.emoji_settings.add_emoji;
38 settings.remove_old_emoji = yaml_settings.custom.emoji_settings.remove_old_emoji;
39
40 settings.include_remarks = yaml_settings.custom.filtering.include_remarks;
42 settings.exclude_remarks = yaml_settings.custom.filtering.exclude_remarks;
43
44 settings.custom_rulesets = yaml_settings.parsed_rulesets;
46 settings.custom_proxy_groups = yaml_settings.parsed_custom_proxy_groups;
47 settings.rename_nodes = yaml_settings.parsed_rename;
48 settings.emojis = yaml_settings.parsed_emojis;
49
50 settings.tpl_args = yaml_settings.tpl_args;
52
53 settings
54 }
55}
56
57impl From<TomlExternalSettings> for ExternalSettings {
59 fn from(toml_settings: TomlExternalSettings) -> Self {
60 let mut settings = ExternalSettings::default();
61
62 settings.clash_rule_base = toml_settings.custom.rule_bases.clash_rule_base;
64 settings.surge_rule_base = toml_settings.custom.rule_bases.surge_rule_base;
65 settings.surfboard_rule_base = toml_settings.custom.rule_bases.surfboard_rule_base;
66 settings.mellow_rule_base = toml_settings.custom.rule_bases.mellow_rule_base;
67 settings.quan_rule_base = toml_settings.custom.rule_bases.quan_rule_base;
68 settings.quanx_rule_base = toml_settings.custom.rule_bases.quanx_rule_base;
69 settings.loon_rule_base = toml_settings.custom.rule_bases.loon_rule_base;
70 settings.sssub_rule_base = toml_settings.custom.rule_bases.sssub_rule_base;
71 settings.singbox_rule_base = toml_settings.custom.rule_bases.singbox_rule_base;
72
73 settings.enable_rule_generator =
75 Some(toml_settings.custom.rule_generation.enable_rule_generator);
76 settings.overwrite_original_rules = Some(
77 toml_settings
78 .custom
79 .rule_generation
80 .overwrite_original_rules,
81 );
82
83 settings.add_emoji = toml_settings.custom.emoji_settings.add_emoji;
85 settings.remove_old_emoji = toml_settings.custom.emoji_settings.remove_old_emoji;
86
87 settings.include_remarks = toml_settings.custom.filtering.include_remarks;
89 settings.exclude_remarks = toml_settings.custom.filtering.exclude_remarks;
90
91 settings.custom_rulesets = toml_settings.parsed_rulesets;
93 settings.custom_proxy_groups = toml_settings.parsed_custom_proxy_groups;
94 settings.rename_nodes = toml_settings.parsed_rename;
95 settings.emojis = toml_settings.parsed_emojis;
96
97 settings.tpl_args = toml_settings.tpl_args;
99
100 settings
101 }
102}
103
104impl From<IniExternalSettings> for ExternalSettings {
106 fn from(ini_settings: IniExternalSettings) -> Self {
107 let mut settings = ExternalSettings::default();
108
109 settings.clash_rule_base = ini_settings.clash_rule_base;
111 settings.surge_rule_base = ini_settings.surge_rule_base;
112 settings.surfboard_rule_base = ini_settings.surfboard_rule_base;
113 settings.mellow_rule_base = ini_settings.mellow_rule_base;
114 settings.quan_rule_base = ini_settings.quan_rule_base;
115 settings.quanx_rule_base = ini_settings.quanx_rule_base;
116 settings.loon_rule_base = ini_settings.loon_rule_base;
117 settings.sssub_rule_base = ini_settings.sssub_rule_base;
118 settings.singbox_rule_base = ini_settings.singbox_rule_base;
119
120 settings.enable_rule_generator = Some(ini_settings.enable_rule_generator);
122 settings.overwrite_original_rules = Some(ini_settings.overwrite_original_rules);
123
124 settings.add_emoji = ini_settings.add_emoji;
126 settings.remove_old_emoji = ini_settings.remove_old_emoji;
127
128 settings.include_remarks = ini_settings.include_remarks;
130 settings.exclude_remarks = ini_settings.exclude_remarks;
131
132 settings.custom_rulesets = ini_settings.parsed_rulesets;
134 settings.custom_proxy_groups = ini_settings.parsed_custom_proxy_groups;
135 settings.rename_nodes = ini_settings.parsed_rename;
136 settings.emojis = ini_settings.parsed_emojis;
137
138 settings.tpl_args = ini_settings.tpl_args;
140
141 settings
142 }
143}