Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Add ASCII-insensitive string equality

Chiusa Adatta ai principianti
#715 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
75/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
rust
Ambito
compilers

Direzione di ricerca

La funzione eq_ignore_ascii_case dovrebbe essere aggiunta a std/string/cmp.wave. Inizia esaminando le funzioni di supporto ASCII esistenti in quel file. Implementa il confronto iterando sui byte, convertendo ASCII A-Z in minuscolo e confrontando. Scrivi test per stringhe vuote, lunghezze diverse, maiuscole/minuscole miste, punteggiatura e byte non ASCII. Esegui i test ai livelli di ottimizzazione O0 e O2 per assicurarti che non ci siano regressioni.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement good first issue needs testing

Motivation

std/string/cmp.wave only provides case-sensitive equality. General callers must implement ASCII folding themselves, while std/net/resolve_table.wave already has a private comparison loop for this purpose.

Scope

Add eq_ignore_ascii_case(a: str, b: str) -> bool to std::string::cmp. Fold ASCII A–Z, compare other bytes exactly, and stop at the NUL terminator. Reuse existing ASCII helpers where practical.

Keep eq unchanged. Unicode folding and locale-sensitive comparison are outside this task. Reusing the helper in the resolver is optional and must preserve service-name case sensitivity and the explicit resolution policy in #567.

Completion criteria

  • Compare strings without allocation or input mutation.
  • Cover empty strings, unequal lengths, mixed ASCII case, punctuation, and distinct non-ASCII bytes.
  • Run focused regressions at O0/O2.

Difficulty: easy.

Lingua principale
Rust
Stelle
56
Fork
21
Merge medio
4h 11m
PR unite (30g)
48

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di wavefnd/Wave

Tutte le issue di wavefnd/Wave

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.