Module models

Source
Expand description

Core data models for the application

This module contains the primary data structures used throughout the application, separated from the logic that operates on them.

§Usage

Import the models directly from this module:

use subconverter_rs::models::{Proxy, ProxyType};

// Create a new proxy
let mut proxy = Proxy::default();
proxy.proxy_type = ProxyType::VMess;
proxy.hostname = "example.com".to_string();
proxy.port = 443;

Or use the re-exports from the crate root:

use subconverter_rs::{Proxy, ProxyType};

// Create a new proxy
let mut proxy = Proxy::default();
proxy.proxy_type = ProxyType::VMess;

§Working with Option fields

Many fields in the Proxy struct are wrapped in Option, which requires special handling:

use subconverter_rs::Proxy;

let proxy = Proxy::default();

// Check if an Option<String> field is Some and not empty
if proxy.encrypt_method.as_ref().map_or(false, |s| !s.is_empty()) {
    println!("Encryption method: {}", proxy.encrypt_method.as_ref().unwrap());
}

// Provide a default value
let method = proxy.encrypt_method.as_deref().unwrap_or("none");

See the examples directory for more detailed usage examples.

Re-exports§

pub use extra_settings::ExtraSettings;
pub use proxy_group_config::BalanceStrategy;
pub use proxy_group_config::ProxyGroupConfig;
pub use proxy_group_config::ProxyGroupConfigs;
pub use proxy_group_config::ProxyGroupType;
pub use regex_match_config::RegexMatchConfig;
pub use regex_match_config::RegexMatchConfigs;
pub use subconverter_target::SubconverterTarget;
pub use proxy::Proxy;
pub use proxy::ProxyType;
pub use ruleset::RulesetConfig;
pub use ruleset::RulesetContent;
pub use ruleset::RulesetType;
pub use ciphers::SSR_CIPHERS;
pub use ciphers::SS_CIPHERS;
pub use proxy::HTTP_DEFAULT_GROUP;
pub use proxy::HYSTERIA2_DEFAULT_GROUP;
pub use proxy::HYSTERIA_DEFAULT_GROUP;
pub use proxy::SNELL_DEFAULT_GROUP;
pub use proxy::SOCKS_DEFAULT_GROUP;
pub use proxy::SSR_DEFAULT_GROUP;
pub use proxy::SS_DEFAULT_GROUP;
pub use proxy::TROJAN_DEFAULT_GROUP;
pub use proxy::V2RAY_DEFAULT_GROUP;
pub use proxy::WG_DEFAULT_GROUP;

Modules§

builder
ciphers
configs
cron
extra_settings
ini_bindings
proxy
Proxy model definitions
proxy_group_config
proxy_node
regex_match_config
ruleset
subconverter_target