Rust · Intermediário · Português · Técnico
atributo cfg
Atributo #[cfg(...)] e macro cfg!() que incluem ou excluem código conforme condições de compilação, como sistema operacional, features e debug_assertions.
Onde usar
Aparece em código específico de plataforma e em módulos de teste, com #[cfg(test)]. O código excluído nem chega a ser compilado.
Em código
#[cfg(target_os = "windows")]
fn so_win() {}
#[cfg(not(debug_assertions))]
fn so_release() {}
if cfg!(debug_assertions) {
println!("debug");
}Exemplos
Isola esse trecho com um atributo cfg para Windows.
O módulo de testes usa cfg(test).
Cuidado
A macro cfg!() só devolve um bool, e o código dos dois lados precisa compilar; já o atributo #[cfg] remove o item de verdade.
Sinônimos
compilação condicional
Origem
Abreviação de configuration, 'configuração'.