serde module provides Deserializer and Serializer.
Serializer
Source code:
export interface Serializer {
  serializeStr(value: string): void;
  serializeBytes(value: Uint8Array): void;
  serializeBool(value: boolean): void;
  serializeUnit(value: null): void;
  serializeChar(value: string): void;
  serializeF32(value: number): void;
  serializeF64(value: number): void;
  serializeU8(value: number): void;
  serializeU16(value: number): void;
  serializeU32(value: number): void;
  serializeU64(value: BigInt | number): void;
  serializeU128(value: BigInt | number): void;
  serializeI8(value: number): void;
  serializeI16(value: number): void;
  serializeI32(value: number): void;
  serializeI64(value: BigInt | number): void;
  serializeI128(value: BigInt | number): void;
  serializeLen(value: number): void;
  serializeVariantIndex(value: number): void;
  serializeOptionTag(value: boolean): void;
  getBufferOffset(): number;
  getBytes(): Uint8Array;
  sortMapEntries(offsets: number[]): void;
}
Example:
public serialize(serializer: Serializer): void {
  serializer.serializeU64(this.proposal_id);
  this.proposer.serialize(serializer);
  this.voter.serialize(serializer);
  serializer.serializeBool(this.agree);
  serializer.serializeU128(this.vote);
}
Reference: serialize
Deserializer
Source code:
export interface Deserializer {
  deserializeStr(): string;
  deserializeBytes(): Uint8Array;
  deserializeBool(): boolean;
  deserializeUnit(): null;
  deserializeChar(): string;
  deserializeF32(): number;
  deserializeF64(): number;
  deserializeU8(): number;
  deserializeU16(): number;
  deserializeU32(): number;
  deserializeU64(): BigInt;
  deserializeU128(): BigInt;
  deserializeI8(): number;
  deserializeI16(): number;
  deserializeI32(): number;
  deserializeI64(): BigInt;
  deserializeI128(): BigInt;
  deserializeLen(): number;
  deserializeVariantIndex(): number;
  deserializeOptionTag(): boolean;
  getBufferOffset(): number;
  checkThatKeySlicesAreIncreasing(
      key1: [number, number],
      key2: [number, number]
  ): void;
}
Example:
static deserialize(deserializer: Deserializer): BlockRewardEvent {
  const block_number = deserializer.deserializeU64();
  const block_reward = deserializer.deserializeU128();
  const gas_fees = deserializer.deserializeU128();
  const miner = AccountAddress.deserialize(deserializer);
  return new BlockRewardEvent(block_number,block_reward,gas_fees,miner);
}
Reference: deserialize




