вот такую глобальную переменную
static MINIMAL_SUPPORTED_SDK_VERSION: Lazy<semver::Version> =
Lazy::new(|| semver::Version::from_str("0.5.0").unwrap());
с двумя условиями:
- нужно уметь взять на неё 'static ссылку (поэтому просто thread_local не подходит)
- нужно уметь проверить при запуске, что версия валидная (т.е. чтобы этот unwrap() мог произойти только при старте приложения)
Я пришёл к варианту, как выше + дополнительный thread_local вида
thread_local!(static MINIMAL_SUPPORTED_SDK_VERSION_CHECK: semver::Version = Lazy::force(&MINIMAL_SUPPORTED_SDK_VERSION).clone());
для проверки.
Но может быть есть вариант покрасивее?
semver::Version::from_str("0.5.0").map(|v| cell.set(v))
Обсуждают сегодня