ExpertiDict

Rust · Avançado · Inglês · Técnico

procedural macro

/prəˈsiːdʒərəl ˈmækroʊ/substantivo

Macro escrita como função Rust que recebe e devolve um fluxo de tokens, executada na compilação. Pode ser derive, atributo ou função, e vive numa crate proc-macro.

Onde usar

Aparece em #[derive(Serialize)] e em atributos como #[tokio::main]. Costuma-se usar as crates syn e quote para analisar e gerar código.

Em código

// crate com proc-macro = true no Cargo.toml
use proc_macro::TokenStream;
#[proc_macro_derive(Oi)]
pub fn deriva_oi(_i: TokenStream)
  -> TokenStream {
  TokenStream::new()
}

Exemplos

The derive is a procedural macro.

O derive é uma procedural macro.

Use syn and quote to write the procedural macro.

Use syn e quote para escrever a procedural macro.

Cuidado

Precisa ficar em uma crate própria, separada, e essa crate só pode exportar macros.

Sinônimos

proc macro

Antônimos

macro_rules

Veja também

Todos os termos de Rust