2xsave_common — разделяемая библиотека с общими примитивами для всех крейтов организации 2Xsave: конфигурация, HTTP-утилиты, общие типы и Python-биндинги. Каждый платформенный крейт (trsave_core, twsave_core и т.д.) использует эту библиотеку вместо дублирования кода.
Имя пакета в Cargo:
xsave-commonИмя вuse-выражениях:xsave_commonПричина: Rust не разрешает имена пакетов, начинающихся с цифры.
| Модуль | Назначение |
|---|---|
config |
RuntimeConfig и трейт ConfigProfile для платформо-специфичных настроек |
constants |
Общие строки User-Agent: DEFAULT_DESKTOP и DEFAULT_MOBILE |
http |
ClientIdentity, build_http_client, insert_header |
types |
BinaryAsset, FileDownloadOutcome, BinaryDownloadOutcome |
python |
Общий pyo3 boilerplate: PyBinaryAsset, хелперы конвертации |
Добавьте зависимость в Cargo.toml вашего крейта:
[dependencies]
xsave-common = { git = "https://github.com/2Xsave/2xsave_common", branch = "main" }Объявите профиль платформы и загрузите конфигурацию:
use xsave_common::config::{ConfigProfile, RuntimeConfig};
pub struct MyPlatformProfile;
impl ConfigProfile for MyPlatformProfile {
const ENV_PREFIX: &'static str = "MYSAVE";
const CONFIG_FILE: &'static str = "my_config.json";
const CONFIG_PATH_ENV: &'static str = "MY_CONFIG_PATH";
}
let config = RuntimeConfig::load_for::<MyPlatformProfile>(output_root)?;RuntimeConfig::load_for автоматически объединяет значения из файла конфигурации и переменных окружения, давая приоритет переменным окружения.
MIT — см. LICENSE.