Files
rippled/include/xrpl/protocol/st.h
Denis Angell 88794a1ea9 docs: add Doxygen comments across xrpl and xrpld
Bulk documentation pass covering 702 C++ source files in src/libxrpl, src/xrpld, and
include/xrpl. Adds class, function, parameter, and invariant docs per
docs/DOCUMENTATION_STANDARDS.md.

Squashed from the original three-part series (part 1 / part 2 / part 3) to avoid
merge-conflict noise when rebasing the work onto current develop.
2026-05-14 10:20:15 +02:00

52 lines
2.5 KiB
C

/** @file
* Umbrella header for the XRPL Serialized Type (ST) system.
*
* Including this header makes the complete ST type vocabulary available in a
* single line. Every type that can appear inside a transaction, ledger entry,
* or consensus message is reachable transitively:
*
* - **Field registry** — `SField`, `SOTemplate`, `SOEStyle`, and the full set
* of named fields (`sfAmount`, `sfDestination`, …) via `SField.h`.
* - **Polymorphic root** — `STBase` and the `detail::STVar` small-buffer
* helper via `STBase.h`.
* - **Scalar leaves** — `STInteger<T>` / `STUInt8` … `STUInt64` / `STInt32`
* (`STInteger.h`); `STBitString<Bits>` / `STUInt128` … `STUInt256`
* (`STBitString.h`); `STBlob` (`STBlob.h`); `STAccount` (`STAccount.h`).
* - **Composite containers** — `STObject` with `SOTemplate` enforcement and
* typed proxy accessors (`STObject.h`); `STArray` of inner `STObject`
* values (`STArray.h`); `STVector256` for multi-hash fields (`STVector256.h`).
* - **Domain-specific types** — `STAmount` (XRP drops or IOU amount),
* `STNumber` (high-precision asset-contextual value), `STPathSet` (payment
* path graphs), `STIssue`, `STCurrency`.
* - **High-level protocol objects** — `STTx` (signed transaction with
* cached ID and type), `STLedgerEntry` / `SLE` (keyed ledger state entry),
* `STValidation` (consensus vote with lazy signature cache).
* - **JSON boundary** — `STParsedJSON` for deserializing a `Json::Value` tree
* into an `STObject` or `STArray`.
*
* @note Code that works with only one or two ST primitives should prefer the
* individual headers to keep compile-time dependencies minimal. Include
* `st.h` when a translation unit genuinely needs the full protocol-object
* vocabulary (transaction processing, serialization, RPC formatting, etc.).
*
* @see STBase.h, STObject.h, STTx.h, STLedgerEntry.h, STValidation.h
*/
#pragma once
#include <xrpl/protocol/SField.h>
#include <xrpl/protocol/STAccount.h>
#include <xrpl/protocol/STAmount.h>
#include <xrpl/protocol/STArray.h>
#include <xrpl/protocol/STBase.h>
#include <xrpl/protocol/STBitString.h>
#include <xrpl/protocol/STBlob.h>
#include <xrpl/protocol/STInteger.h>
#include <xrpl/protocol/STLedgerEntry.h>
#include <xrpl/protocol/STNumber.h>
#include <xrpl/protocol/STObject.h>
#include <xrpl/protocol/STParsedJSON.h>
#include <xrpl/protocol/STPathSet.h>
#include <xrpl/protocol/STTx.h>
#include <xrpl/protocol/STValidation.h>
#include <xrpl/protocol/STVector256.h>