Skip to content

2Xsave/2xsave_common

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔧 2xsave_common

Общая библиотека утилит для всех 2Xsave-крейтов

CI License: MIT Rust

📖 Описание

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages