method Codec.encode
Writes x to the encoder w as a sequence of events (writeStr, writeI64, ...).
Example:
use std.ser { Codec, Encoder, Decoder, Schema, encode, decode, hex, EncodeError, DecodeError }
data Shift {}
impl Codec<i64> for Shift {
static fn encode(x: &i64, w: &var Encoder) -> () | EncodeError { w.writeI64(x + 1) }
static fn decode(r: &var Decoder) -> i64 | DecodeError { r.readI64()? - 1 }
static fn schema() -> Schema => Schema.of("int64")
}
data Subject {
@codec(Shift) n: i64
}
fn main() io {
print(hex(&encode(&Subject{ n: 41 })!))
}Вывод
082a
static fn encode(x: &T, w: &var Encoder) -> () | EncodeErrorС версии. 1.0.0-beta
Параметры
| Имя | Тип |
|---|---|
x | &T |
w | &var Encoder |
Возвращает
()
Ошибки
EncodeError@error- `EncodeError` when the value cannot be written (`Unsupported`, `Failed`).
Эффекты
не объявлены (чистая, пока тело не говорит иное)
Определено в: std/ser/ser.oxl:278