bytecodealliance / bytecodealliance/wit-bindgen

Should `Handle<T>` implement `DerefMut<T> where T: LocalHandle`?

Aperta
#31 2 commenti 1 reazione 0 assegnatari Vedi su GitHub
gen-rust
Lingua principale
Rust
Stelle
1.5k
Fork
286
Merge medio
6h 32m
PR unite (30g)
19

Descrizione

I can envision uses cases where there are "setter" functions on a resource:

```witx
resource person {
get_name: function() -> string
set_name: function(name: string)
}

new_person: function(name: string) -> person
```

Right now the implementer of this interface can't get a mutable reference to the underlying `T` as `Handle` doesn't implement `DerefMut`.

Thoughts on implementing it and its safety guarantee (should we wrap the underlying resource with a `RefCell` to at least get runtime borrow-checking)?

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Esamina il comportamento esistente di Handle, LocalHandle e Deref, quindi analizza come l'accesso mutabile interagirebbe con la proprietà delle risorse e la sicurezza. Determina se DerefMut debba essere supportato e quale garanzia sia necessaria in merito al prestito mutabile o ai controlli a runtime; l'issue è completata quando questo design è stato risolto e il comportamento richiesto è stato specificato.

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

Valutazione

Stack tecnologico
rust
Ambito
compilers
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.