Skip to content
ZOLO / TE218 Type · error

derive target has no registered deriver

Compiler diagnostic TE218: derive target has no registered deriver.

Um tipo usa @derive(T), mas nenhum deriver para T está disponível no escopo. Zolo não ignora esse caso: um nome digitado incorretamente não pode produzir um programa parcialmente gerado que só falha em runtime.

@derive(Tabel) // TE218: provavelmente deveria ser `Table`
struct Todo { id: int }

Como corrigir

Corrija o nome ou importe a função pública que declara o deriver. Derivers de biblioteca são uma superfície comptime normal e podem ser renomeados no use.

use orm::Model

@derive(Model)
struct Todo { id: int }

A biblioteca deve exportar a declaração correspondente:

@derive_for(Model)
pub fn Model(info) -> Syntax<.Items> {
  quote items { impl ${info.ref} {} }
}

Nomear a exportação pública como a capacidade deixa o contrato explícito: use orm::Model habilita @derive(Model). Helpers de implementação podem continuar privados e usar snake_case. O formato antigo — importar uma função pública chamada derive_model — continua compatível, mas não é a convenção recomendada para bibliotecas.

Global index

Find your way through Zolo

Try an idea

Start here

9 results

9 results

en