defmodule StellarBase.XDR.ContractDataEntryData do @moduledoc """ Automatically generated by xdrgen DO NOT EDIT or your changes may be overwritten Target implementation: elixir_xdr at https://hex.pm/packages/elixir_xdr Representation of Stellar `ContractDataEntryData` type. """ @behaviour XDR.Declaration alias StellarBase.XDR.{ UInt32, SCVal } @struct_spec XDR.Struct.new( flags: UInt32, val: SCVal ) @type flags_type :: UInt32.t() @type val_type :: SCVal.t() @type t :: %__MODULE__{flags: flags_type(), val: val_type()} defstruct [:flags, :val] @spec new(flags :: flags_type(), val :: val_type()) :: t() def new( %UInt32{} = flags, %SCVal{} = val ), do: %__MODULE__{flags: flags, val: val} @impl true def encode_xdr(%__MODULE__{flags: flags, val: val}) do [flags: flags, val: val] |> XDR.Struct.new() |> XDR.Struct.encode_xdr() end @impl true def encode_xdr!(%__MODULE__{flags: flags, val: val}) do [flags: flags, val: val] |> XDR.Struct.new() |> XDR.Struct.encode_xdr!() end @impl true def decode_xdr(bytes, struct \\ @struct_spec) def decode_xdr(bytes, struct) do case XDR.Struct.decode_xdr(bytes, struct) do {:ok, {%XDR.Struct{components: [flags: flags, val: val]}, rest}} -> {:ok, {new(flags, val), rest}} error -> error end end @impl true def decode_xdr!(bytes, struct \\ @struct_spec) def decode_xdr!(bytes, struct) do {%XDR.Struct{components: [flags: flags, val: val]}, rest} = XDR.Struct.decode_xdr!(bytes, struct) {new(flags, val), rest} end end