Мицрософт је објавио званичну Руст библиотеку за Виндовс АПИ

Библиотека је дизајнирана као Руст сандук под МИТ лиценцом, која се може користити на следећи начин:

[зависности] виндовс = "0.2.1"

[зависности изградње] виндовс = "0.2.1"

Након тога, у буилд.рс буилд скрипти можете да генеришете модуле који су потребни за вашу апликацију:

фн маин() {
виндовс::буилд!(
виндовс::дата::кмл::дом::*
виндовс::вин32::систем_сервицес::{ЦреатеЕвентВ, СетЕвент, ВаитФорСинглеОбјецт}
виндовс::вин32::виндовс_программинг::ЦлосеХандле
);
}

Документација о доступним модулима је објављена на доцс.рс.

Primer koda:

мод везивања {
::виндовс::инцлуде_биндингс!();
}

користи везивање::{
виндовс::дата::кмл::дом::*,
виндовс::вин32::систем_сервицес::{ЦреатеЕвентВ, СетЕвент, ВаитФорСинглеОбјецт},
виндовс::вин32::виндовс_программинг::ЦлосеХандле,
};

фн маин() -> виндовс::Резултат {
лет доц = КсмлДоцумент::нев()?;
доц.лоад_кмл("здраво свет")?;

нека роот = доц.доцумент_елемент()?;
ассерт!(роот.ноде_наме()? == "хтмл");
ассерт!(роот.иннер_тект()? == "здраво свет");

несигурно {
нека догађај = ЦреатеЕвентВ(
стд::птр::нулл_мут(),
труе.инто(),
фалсе.инто(),
стд::птр::нулл(),
);

СетЕвент(евент).ок()?;
ВаитФорСинглеОбјецт(догађај, 0);
ЦлосеХандле(евент).ок()?;
}

Ок(())
}

Неки позиви функција користе несигурно јер се ове функције пружају такве какве јесу, без прилагођавања Руст конвенцијама. Кутија је дизајнирана по истом принципу. компајлер, који служи као основни сандук за приступ либц-у и користи се као основа за изградњу библиотека са сигурним интерфејсом.


Пројекат је настао у оквиру Вин32 пројекат метаподатака, који је дизајниран да олакша креирање АПИ-ја за различите програмске језике. Друга библиотека, која је настала на основу пројекта Метаподатака у првој фази пројекта - Ц#/Вин32. Мицрософт је такође најавио почетак рада на верзија за Ц++, који користи савремени стил језика.

Извор: линук.орг.ру