Microsoft ir izlaidusi oficiālo Rust bibliotēku Windows API

Bibliotēka ir veidota kā Rust crate saskaņā ar MIT licenci, ko var izmantot šādi:

[atkarības] windows = "0.2.1"

[build-dependencies] windows = "0.2.1"

Pēc tam build.rs veidošanas skriptā varat ģenerēt lietojumprogrammai nepieciešamos moduļus:

fn galvenais() {
logi::būvēt!(
windows::data::xml::dom::*
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject}
windows::win32::windows_programming::CloseHandle
);
}

Dokumentācija par pieejamajiem moduļiem ir publicēta docs.rs.

Koda piemērs:

mod stiprinājumi {
::windows::include_bindings!();
}

izmantot saistījumus::{
windows::data::xml::dom::*,
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject},
windows::win32::windows_programming::CloseHandle,
};

fn main() -> windows::Result {
let doc = XmlDocument::new()?;
doc.load_xml("sveika pasaule")?;

let root = doc.document_element()?;
Assert!(root.node_name()? == "html");
apgalvot!(root.inner_text()? == "sveika pasaule");

nedrošs {
let event = CreateEventW(
std::ptr::null_mut(),
true.into(),
false.into(),
std::ptr::null(),
);

SetEvent(notikums).ok()?;
WaitForSingleObject(notikums, 0);
CloseHandle(event).ok()?;
}

Labi(())
}

Daži funkciju izsaukumi tiek izmantoti nedroši, jo šīs funkcijas tiek nodrošinātas tādas, kādas tās ir, nepielāgojot tās Rust konvencijām. Kaste ir veidota pēc tāda paša principa. libc, kas kalpo kā pamata kaste piekļuvei libc un tiek izmantota par pamatu, lai izveidotu bibliotēkas ar drošu saskarni.


Projekts tika izveidots ietvaros Win32 metadatu projekts, kas paredzēts, lai atvieglotu API izveidi dažādām programmēšanas valodām. Otrā bibliotēka, kas tika izveidota, pamatojoties uz metadatu projektu projekta pirmajā posmā - C#/Win32. Microsoft arī paziņoja par darba sākšanu versija priekš C++, kurā izmantots mūsdienīgs valodas stils.

Avots: linux.org.ru