ExpertiDict

Rust · Intermediário · Português · Técnico

atributo cfg

/a.tɾi.ˈbu.tu se ˈɛ.fi ʒe/substantivo

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'.

Veja também

Todos os termos de Rust