Unused lifetime in params when is-copy = false
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 55/100
Línea de trabajo
Start by finding the code that generates query parameter structs and borrowed row structs for mappings with is-copy = false; the issue shows the generated output in crates/clorinde/src/queries/repro.rs. Trace how generated lifetimes are added when mapped fields do not borrow data, then check the generated structs compile without unused lifetime errors for the provided pgvector mapping and query.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Migrated from halcyonnouveau/clorinde#257, originally reported by @SinnySupernova on 2026-05-09.
Describe the bug
I'm mapping pgvector and having compiler tell me about unsed lifetime:
error[E0392]: lifetime parameter `'a` is never used
--> crates/clorinde/src/queries/repro.rs:4:32
|
4 | pub struct SearchVectorsParams<'a> {
| ^^ unused lifetime parameter
|
= help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData`
error[E0392]: lifetime parameter `'a` is never used
--> crates/clorinde/src/queries/repro.rs:13:30
|
13 | pub struct VectorRowBorrowed<'a> {
| ^^ unused lifetime parameter
|
= help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData`
Reproduction
clorinde.toml (tried with or without borrowed-type)
[types.mapping]
"public.vector" = { rust-type = "pgvector::Vector", borrowed-type = "pgvector::Vector", is-copy = false }
query
--! search_vectors : VectorRow()
SELECT id, embedding FROM vectors
ORDER BY embedding <=> :query_embedding
LIMIT :limit;
result struct file
// This file was generated with `clorinde`. Do not modify.
#[derive(Debug)]
pub struct SearchVectorsParams<'a> {
pub query_embedding: pgvector::Vector,
pub limit: i64,
}
#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
pub struct VectorRow {
pub id: uuid::Uuid,
pub embedding: pgvector::Vector,
}
pub struct VectorRowBorrowed<'a> {
pub id: uuid::Uuid,
pub embedding: pgvector::Vector,
}
impl<'a> From<VectorRowBorrowed<'a>> for VectorRow {
fn from(VectorRowBorrowed { id, embedding }: VectorRowBorrowed<'a>) -> Self {
Self {
id,
embedding: embedding.into(),
}
}
}
// ... more stuff
Expected behavior
no angry compiler
Logs
Additional context
there is halcyonnouveau/clorinde#186 that had similar for the return types
Severity
Annoyance
- Lenguaje dominante
- Rust
- Estrellas
- 1.2k
- Forks
- 77
- Merge medio
- 5 d 12 h
- PR fusionados (30 d)
- 1
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de cornucopia-rs/cornucopia
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
cornucopia-rs/cornucopia#334 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 76/100
cornucopia-rs/cornucopia#333 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
cornucopia-rs/cornucopia#330 · 2 comentarios ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
cornucopia-rs/cornucopia#309 · 2 comentarios ·
-
configuration feature
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
cornucopia-rs/cornucopia#292 ·
Todos los issues de cornucopia-rs/cornucopia
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
cloudflare/workers-rs#1130 ·
Los mantenedores suelen responder en 11 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
vfarcic/dot-agent-deck#2160 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
RustCrypto/utils#1597 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día