OxL Справочник OxL
РусскийEnglish

method Repr.fromRepr

The value from its representation; called when the type is decoded.

Example:

oxl✓ проверяется в CI
use std.ser { Repr, DecodeError }

@repr(u8)
data Percent { n: u8 }

impl Repr<u8> for Percent {
  fn toRepr() -> u8 => n
  static fn fromRepr(v: u8) -> Percent | DecodeError {
    if v > 100 { fail DecodeError.Invalid(msg: "over 100") }
    Percent{ n: v }
  }
}

fn main() io {
  match Percent.fromRepr(250) {
    Percent p => print("{p.n}")
    DecodeError _ => print("rejected")
  }
}
Вывод
rejected
static fn fromRepr(v: W) -> Self | DecodeError

С версии. 1.0.0-beta

Параметры

ИмяТип
vW

Возвращает

Self

Ошибки

  • DecodeError @error
  • `DecodeError` (usually `Invalid`) when `v` is not a valid representation; decoding then fails with it.

Эффекты

не объявлены (чистая, пока тело не говорит иное)

Определено в: std/ser/ser.oxl:213

См. также