Skip to main content

Module current_ledger_obj

Module current_ledger_obj 

Source
Expand description

§Current Ledger Object Field Retrieval Module (no slot)

Typed accessors for reading fields from the current ledger object — the ledger entry the host is executing against — without first caching it into a slot. This is the no-slot counterpart to crate::fields::ledger_obj. get_field and get_field_optional are generic over any type implementing crate::fields::decoder::FromLedger — see crate::fields::decoder for how a type opts into that.

§Optional vs Required Fields

  • Required (get_field): Returns an error if the field is missing.
  • Optional (get_field_optional): Returns Ok(None) if the field is missing.

Functions§

get_blob_field
Retrieves a Blob<N> field from the current ledger object, writing the host’s bytes directly into the returned Blob<N>’s own storage. See the comment above this function for why Blob<N> gets a dedicated accessor instead of using get_field.
get_blob_field_optional
Optional variant of get_blob_field: returns Ok(None) if the field is not present, otherwise behaves identically (including the direct-write zero-copy behavior). Implemented in terms of get_blob_field itself rather than duplicating its body — Error::FieldNotFound round-trips exactly through Error::from_code/.code() (both are just FIELD_NOT_FOUND), so translating that one error case into None is all this needs to do.
get_field
Retrieves a field from the current ledger object using an SField constant.
get_field_optional
Retrieves an optionally present field from the current ledger object.