use super::external_struct::ExternalSettings;
use super::ini_external::IniExternalSettings;
use super::toml_external::TomlExternalSettings;
use super::yaml_external::YamlExternalSettings;
impl From<YamlExternalSettings> for ExternalSettings {
fn from(yaml_settings: YamlExternalSettings) -> Self {
let mut settings = ExternalSettings::default();
settings.clash_rule_base = yaml_settings.custom.rule_bases.clash_rule_base;
settings.surge_rule_base = yaml_settings.custom.rule_bases.surge_rule_base;
settings.surfboard_rule_base = yaml_settings.custom.rule_bases.surfboard_rule_base;
settings.mellow_rule_base = yaml_settings.custom.rule_bases.mellow_rule_base;
settings.quan_rule_base = yaml_settings.custom.rule_bases.quan_rule_base;
settings.quanx_rule_base = yaml_settings.custom.rule_bases.quanx_rule_base;
settings.loon_rule_base = yaml_settings.custom.rule_bases.loon_rule_base;
settings.sssub_rule_base = yaml_settings.custom.rule_bases.sssub_rule_base;
settings.singbox_rule_base = yaml_settings.custom.rule_bases.singbox_rule_base;
settings.enable_rule_generator =
Some(yaml_settings.custom.rule_generation.enable_rule_generator);
settings.overwrite_original_rules = Some(
yaml_settings
.custom
.rule_generation
.overwrite_original_rules,
);
settings.add_emoji = yaml_settings.custom.emoji_settings.add_emoji;
settings.remove_old_emoji = yaml_settings.custom.emoji_settings.remove_old_emoji;
settings.include_remarks = yaml_settings.custom.filtering.include_remarks;
settings.exclude_remarks = yaml_settings.custom.filtering.exclude_remarks;
settings.custom_rulesets = yaml_settings.parsed_rulesets;
settings.custom_proxy_groups = yaml_settings.parsed_custom_proxy_groups;
settings.rename_nodes = yaml_settings.parsed_rename;
settings.emojis = yaml_settings.parsed_emojis;
settings.tpl_args = yaml_settings.tpl_args;
settings
}
}
impl From<TomlExternalSettings> for ExternalSettings {
fn from(toml_settings: TomlExternalSettings) -> Self {
let mut settings = ExternalSettings::default();
settings.clash_rule_base = toml_settings.custom.rule_bases.clash_rule_base;
settings.surge_rule_base = toml_settings.custom.rule_bases.surge_rule_base;
settings.surfboard_rule_base = toml_settings.custom.rule_bases.surfboard_rule_base;
settings.mellow_rule_base = toml_settings.custom.rule_bases.mellow_rule_base;
settings.quan_rule_base = toml_settings.custom.rule_bases.quan_rule_base;
settings.quanx_rule_base = toml_settings.custom.rule_bases.quanx_rule_base;
settings.loon_rule_base = toml_settings.custom.rule_bases.loon_rule_base;
settings.sssub_rule_base = toml_settings.custom.rule_bases.sssub_rule_base;
settings.singbox_rule_base = toml_settings.custom.rule_bases.singbox_rule_base;
settings.enable_rule_generator =
Some(toml_settings.custom.rule_generation.enable_rule_generator);
settings.overwrite_original_rules = Some(
toml_settings
.custom
.rule_generation
.overwrite_original_rules,
);
settings.add_emoji = toml_settings.custom.emoji_settings.add_emoji;
settings.remove_old_emoji = toml_settings.custom.emoji_settings.remove_old_emoji;
settings.include_remarks = toml_settings.custom.filtering.include_remarks;
settings.exclude_remarks = toml_settings.custom.filtering.exclude_remarks;
settings.custom_rulesets = toml_settings.parsed_rulesets;
settings.custom_proxy_groups = toml_settings.parsed_custom_proxy_groups;
settings.rename_nodes = toml_settings.parsed_rename;
settings.emojis = toml_settings.parsed_emojis;
settings.tpl_args = toml_settings.tpl_args;
settings
}
}
impl From<IniExternalSettings> for ExternalSettings {
fn from(ini_settings: IniExternalSettings) -> Self {
let mut settings = ExternalSettings::default();
settings.clash_rule_base = ini_settings.clash_rule_base;
settings.surge_rule_base = ini_settings.surge_rule_base;
settings.surfboard_rule_base = ini_settings.surfboard_rule_base;
settings.mellow_rule_base = ini_settings.mellow_rule_base;
settings.quan_rule_base = ini_settings.quan_rule_base;
settings.quanx_rule_base = ini_settings.quanx_rule_base;
settings.loon_rule_base = ini_settings.loon_rule_base;
settings.sssub_rule_base = ini_settings.sssub_rule_base;
settings.singbox_rule_base = ini_settings.singbox_rule_base;
settings.enable_rule_generator = Some(ini_settings.enable_rule_generator);
settings.overwrite_original_rules = Some(ini_settings.overwrite_original_rules);
settings.add_emoji = ini_settings.add_emoji;
settings.remove_old_emoji = ini_settings.remove_old_emoji;
settings.include_remarks = ini_settings.include_remarks;
settings.exclude_remarks = ini_settings.exclude_remarks;
settings.custom_rulesets = ini_settings.parsed_rulesets;
settings.custom_proxy_groups = ini_settings.parsed_custom_proxy_groups;
settings.rename_nodes = ini_settings.parsed_rename;
settings.emojis = ini_settings.parsed_emojis;
settings.tpl_args = ini_settings.tpl_args;
settings
}
}