Макрос cfg!
Макрос cfg! проверяет, истинно ли указанное
условие конфигурации на этапе компиляции. Он
возвращает true, если условие выполняется,
и false в противном случае. Параметром
макрос принимает условие конфигурации, которое
нужно проверить.
В отличие от атрибута cfg, который
полностью исключает код из сборки, макрос
cfg! лишь возвращает значение
true или false, позволяя
использовать его прямо в выражениях.
Синтаксис
cfg!(condition)
Пример
Давайте проверим, скомпилирована ли программа
в режиме отладки с помощью условия
debug_assertions:
fn main()
{
let res = cfg!(debug_assertions);
println!("{}", res);
}
Результат выполнения кода:
true
Пример
Давайте проверим целевую операционную систему
с помощью условия target_os = "linux":
fn main()
{
if cfg!(target_os = "linux")
{
println!("Linux");
}
else
{
println!("Not Linux");
}
}
Результат выполнения кода:
"Linux"
Пример
Давайте проверим целевую архитектуру процессора
с помощью условия target_arch = "x86_64":
fn main()
{
let res = cfg!(target_arch = "x86_64");
println!("{}", res);
}
Результат выполнения кода:
true