Lines
100 %
Functions
60 %
Branches
//! Auto-generated from doc/scripting/entity_registry.org.
//! Do not edit manually — edit the org file + cargo build.
use wasm_encoder::ValType;
use crate::ast::EntityKind;
use super::CompileContext;
#[derive(Debug, Clone, Copy)]
pub(super) enum FieldKind {
StringRef,
Ratio,
I32,
PairRef,
}
impl FieldKind {
pub(super) fn as_val_type(self, ctx: &CompileContext) -> ValType {
match self {
FieldKind::StringRef => ctx.string_ref(),
FieldKind::Ratio => ctx.ratio_ref(),
FieldKind::I32 => ValType::I32,
FieldKind::PairRef => ctx.pair_ref(),
pub(super) struct EntitySpec {
pub kind: EntityKind,
pub type_name: &'static str,
pub fields: &'static [FieldKind],
pub(super) const ENTITY_SPECS: &[EntitySpec] = &[
EntitySpec {
kind: EntityKind::Account,
type_name: "account",
fields: &[FieldKind::StringRef, FieldKind::StringRef, FieldKind::StringRef],
},
kind: EntityKind::Commodity,
type_name: "commodity_entity",
kind: EntityKind::Transaction,
type_name: "transaction",
kind: EntityKind::Split,
type_name: "split",
fields: &[FieldKind::StringRef, FieldKind::StringRef, FieldKind::StringRef, FieldKind::Ratio],
kind: EntityKind::Tag,
type_name: "tag_entity",
kind: EntityKind::Price,
type_name: "price",
fields: &[FieldKind::StringRef, FieldKind::StringRef, FieldKind::StringRef, FieldKind::Ratio, FieldKind::StringRef],
kind: EntityKind::SshKey,
type_name: "ssh_key",
kind: EntityKind::ReportNode,
type_name: "report_node",
fields: &[FieldKind::StringRef, FieldKind::StringRef, FieldKind::I32, FieldKind::Ratio, FieldKind::PairRef],
];