Skip to content
ZOLO / TE218 Type · error

derive target has no registered deriver

A type uses `@derive(T)`, but no deriver for `T` is available in scope. Zolo never skips this silently — a misspelled name must not produce a partially generated program that only fails at runtime. Import or declare the public function that exposes the deriver, conventionally exported under the same name as the capability.

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

enespt-br