A feature request: implement `retain` on HeaderMap
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 52/100
Línea de trabajo
Comienza localizando la implementación de HeaderMap y las pruebas existentes de sus métodos de mutación; después, lee cómo las closures son utilizadas por las APIs cercanas. Añade el comportamiento de retain solicitado para filtrar las entradas de header y cubre en las pruebas tanto los headers retenidos como los eliminados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
It would be really handy to have the retain method available (as per std::collections) in order to allow headers to be removed based upon a closure. This would, for example, avoid the double-scan and "clone key" issues when one has a list of headers that must be retained or removed:
let delete_list: Vec<HeaderName> = headers
.keys()
.filter(|k| !allowed_headers.contains(*k))
.map(|k| k.clone())
.collect::<Vec<HeaderName>>();
for header in delete_list {
headers.remove(header);
}
would be replaced with
headers.retain(|(k,v)| allowed_headers.contains(*k));
- Lenguaje dominante
- Rust
- Estrellas
- 1.4k
- Forks
- 382
- Merge medio
- 10 h 32 min
- PR fusionados (30 d)
- 2
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 hyperium/http
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 62/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 62/100
Todos los issues de hyperium/http
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
install: root SSH tmpfiles.d drop-in is labeled etc_runtime_t instead of etc_tPosiblemente ocupada @andrewdunndev la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
[Misdetection] `text/tab-separated-values` file misdetected as `text/tsv`Posiblemente ocupada @bact la tomó hoy. Abiertomisdetection needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
C-bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 2 días