CLI: ScVal and ScType::Result ambiguity

Aperta
#562 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
30/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
rust
Ambito
cli

Direzione di ricerca

Inizia tracciando la gestione di ScVal e ScType da parte della CLI per i valori Result e il percorso XDR-to-JSON. Determina in che modo un vettore di due elementi contenente void o un valore distinguerebbe Ok da Err, quindi documenta il comportamento richiesto sia per gli errori ScVal arbitrari sia per i valori enum.

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

Descrizione

Currently Results are not handled well if not at all. One issue with implementing XDR -> JSON for results is that there is no notion of an error type in ScVal. And since the error type in a result type can be any ScVal there is no way to tell the difference between the two.

Example:

In contract

fn foo() -> Result<String, String> {..}

While currently most errors are const enums, this is still valid. Furthermore, we could return a const enum as the Ok value.

Thus I suggest that we encode results in ScVal as a vector of two elements which are void or a value. E.i. as two options. This would allow determining if an Ok or Err was returned.

Lingua principale
Rust
Stelle
123
Fork
141
Merge medio
2g 21h
PR unite (30g)
17

Guida per i contributori

Apri la guida per i contributori

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 stellar/stellar-cli

Tutte le issue di stellar/stellar-cli

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.