bytecodealliance / bytecodealliance/wit-bindgen
Should `Handle<T>` implement `DerefMut<T> where T: LocalHandle`?
- 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