Microsoft ka lëshuar bibliotekën zyrtare Rust për API të Windows

Biblioteka është projektuar si një arkë Rust nën licencën MIT, e cila mund të përdoret si kjo:

[varësi] Windows = "0.2.1"

[ndërtoj-varësi] Windows = "0.2.1"

Pas kësaj, në skriptin e ndërtimit build.rs, mund të gjeneroni modulet që nevojiten për aplikacionin tuaj:

fn main() {
dritare::ndërtim!(
windows::data::xml::dom::*
Windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject}
windows::win32::windows_programming::CloseHandle
);
}

Dokumentacioni rreth moduleve të disponueshme publikohet në docs.rs.

Shembull i kodit:

lidhjet mod {
::windows::include_bindings!();
}

përdorni lidhjet::{
Windows::data::xml::dom::*,
Windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject},
Windows::win32::windows_programming::CloseHandle,
};

fn main() -> dritare::Rezultati {
le doc = XmlDocument::new()?;
doc.load_xml("përshëndetje botë");

le të rrënjë = doc.document_element()?;
pohoj!(root.node_name()? == "html");
pohoj!(root.inner_text()? == "përshëndetje botë");

i pasigurt {
le event = CreateEventW(
std::ptr::null_mut(),
true.into(),
false.into(),
std::ptr::null(),
);

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

Ne rregull(())
}

Disa thirrje funksioni përdoren të pasigurta sepse këto funksione ofrohen siç janë, pa i përshtatur ato me konventat e Rust. Arka është projektuar në të njëjtin parim. libc, e cila shërben si një arkë bazë për aksesin në libc dhe përdoret si bazë për ndërtimin e bibliotekave me një ndërfaqe të sigurt.


Projekti u krijua brenda kornizës Projekti i meta të dhënave Win32, i cili është krijuar për ta bërë më të lehtë krijimin e API-ve për gjuhë të ndryshme programimi. Biblioteka e dytë, e cila u krijua në bazë të Projektit Metadata në fazën e parë të projektit - C#/Win32. Microsoft njoftoi gjithashtu fillimin e punës në version për C++, e cila përdor një stil modern të gjuhës.

Burimi: linux.org.ru