# Rust 1.94.0: Stabilizace array_windows, klíč include v konfiguracích a přechod na TOML 1.1
Vydána nová verze Rust 1.94.0, která přináší několik významných vylepšení pro vývojáře. Mezi klíčové novinky patří metoda array_windows pro iteraci přes pole fixní délky, podpora klíče include v konfiguračních souborech Cargo a přechod na TOML 1.1. Vysvětlíme, jak tyto změny usnadní vaši práci.
Metoda array_windows: práce s okny fixní délky
V nové verzi Rust byla stabilizována metoda array_windows pro slicy. Umožňuje iterovat přes slice s okny fixní délky, což eliminuje potřebu ruční indexace a kontrol hranic. Na rozdíl od metody windows, která vrací slicy dynamické délky (&[T]), array_windows vrací reference na pole fixní délky (&[T; N]).
To je obzvláště užitečné v úlohách, kde je potřeba zpracovávat po sobě jdoucí prvky s pevně danou velikostí okna. Například pro hledání vzorce ABBA (dvě různé písmena, za nimiž následuje obrácený pořadí této dvojice) v řetězci lze použít následující kód:
fn has_abba(s: &str) -> bool {
s.as_bytes()
.array_windows()
.any(|[a1, b1, b2, a2]| (a1 != b1) && (a1 == a2) && (b1 == b2))
}
Kompilátor automaticky odvodí délku okna (4) z vzorce destrukturyzace v uzávěru. Při použití windows(4) by bylo potřeba ručně kontrolovat indexy, což je méně bezpečné a čitelné.
Řízení konfigurace Cargo prostřednictvím klíče include
Cargo nyní podporuje klíč include v konfiguračních souborech (.cargo/config.toml). Tato funkce usnadňuje organizaci, sdílení a správu konfigurací mezi projekty a prostředími.
Klíč include může být polem cest nebo inline tabulkou s dodatečnými volbami. Například:
# Pole cest
include = [
"frodo.toml",
"samwise.toml",
]
# Inline tabulky pro jemné nastavení
include = [
{ path = "required.toml" },
{ path = "optional.toml", optional = true },
]
Volba optional = true umožňuje specifikovat, že soubor může v některých prostředích chybět (např. na lokálním stroji vývojáře). To zvyšuje flexibilitu konfigurace bez nutnosti udržovat samostatné větve.
Přechod na TOML 1.1: co se změnilo
Cargo nyní plně podporuje TOML verze 1.1 pro manifesty a konfigurační soubory. To zahrnuje několik pohodlných vylepšení:
- Možnost umístit inline tabulky na více řádků s ukončovacími čárkami.
- Nové únikové sekvence pro řetězce:
\xHHa\e. - Volitelné sekundy v reprezentaci času (výchozí hodnota — 0).
Příklad použití vířeřádkové inline tabulky:
serde = {
version = "1.0",
features = ["derive"],
}
Poznámka: Použití nových možností TOML 1.1 v Cargo.toml zvyšuje minimální podporovanou verzi Rust (MSRV) na úroveň vyžadující nový parser Cargo. Při publikování krate však Cargo automaticky přepíše manifest do formátu kompatibilního se staršími parsery. To umožňuje zachovat podporu starších verzí Rust pro uživatele vašeho krate.
Stabilizované API: úplný seznam
V releasu 1.94.0 bylo stabilizováno mnoho API, která se dříve nacházela ve fázi vývoje. Zde jsou hlavní z nich:
- Metody pro slicy:
<[T]>::array_windows,<[T]>::element_offset - Metody pro
LazyCell:get,get_mut,force_mut - Metody pro
LazyLock:get,get_mut,force_mut - Konverze:
impl TryFrom<char> for usize - Metody pro
Peekable:next_if_map,next_if_map_mut - Intrinsic funkce pro x86 (AVX-512 FP16) a AArch64 (NEON FP16), kromě těch závislých na nestabilním typu
f16 - Matematické konstanty:
f32::consts::EULER_GAMMA,f64::consts::EULER_GAMMA,f32::consts::GOLDEN_RATIO,f64::consts::GOLDEN_RATIO - Metody
f32::mul_addaf64::mul_addjsou nyní stabilní vconstkontextech
Tyto změny rozšiřují možnosti standardní knihovny a činí kód výraznějším.
Co je důležité: klíčové závěry pro vývojáře
- Zjednodušení zpracování oken: Metoda
array_windowssnižuje šablonový kód při práci s fixními okny, zvyšuje bezpečnost a čitelnost. - Flexibilita konfigurace: Klíč
includev Cargo umožňuje modulární sestavování konfigurací, což je obzvláště užitečné pro velké projekty a týmy. - Kompatibilita s TOML 1.1: Nové možnosti TOML činí konfigurační soubory pohodlnějšími, ale vyžadují zohlednění MSRV při použití v
Cargo.toml. - Rozšíření standardní knihovny: Stabilizace nových API včetně matematických konstant a metod pro iterátory usnadňuje řešení běžných úkolů.
Aktualizace na Rust 1.94.0 je doporučena všem vývojářům, aby využili tato vylepšení. Pro instalaci použijte příkaz rustup update stable.
— Editorial Team
Zatím žádné komentáře.