pub mod ast;
pub mod canonical_log;
pub mod compiler;
pub mod event_type_helpers;
pub mod metrics_context;
pub mod proto_router;
pub mod resolvers;
pub mod runtime_resolvers;
pub mod runtime_resolvers_factory;
pub mod rust;
pub mod scheduler;
pub mod slot_hash_cache;
pub mod spec_trait;
pub mod typescript;
pub mod versioned;
pub mod vm;
pub mod vm_metrics;
pub use slot_hash_cache::{get_slot_hash, record_slot_hash};
pub use canonical_log::{CanonicalLog, LogLevel};
pub use metrics_context::{FieldAccessor, FieldRef, MetricsContext};
pub use resolvers::{
InstructionContext, KeyResolution, ResolveContext, ReverseLookupUpdater, TokenMetadata,
};
pub use runtime_resolvers::{
InProcessResolver, ResolverApplyFuture, ResolverBatchFuture, ResolverBatchResult,
RuntimeResolver, RuntimeResolverBatchRequest, RuntimeResolverBatchResponse,
RuntimeResolverRequest, RuntimeResolverResponse, SharedRuntimeResolver,
};
pub use typescript::{write_typescript_to_file, TypeScriptCompiler, TypeScriptConfig};
pub use vm::{
CapacityWarning, CleanupResult, DirtyTracker, FieldChange, PendingAccountUpdate,
PendingQueueStats, QueuedAccountUpdate, ResolverRequest, ResolverTarget, ScheduledCallback,
StateTableConfig, UpdateContext, VmMemoryStats,
};
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Mutation {
pub export: String,
pub key: Value,
pub patch: Value,
#[serde(skip_serializing_if = "Vec::is_empty", default)]
pub append: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EventWrapper<T = Value> {
pub timestamp: i64,
pub data: T,
#[serde(skip_serializing_if = "Option::is_none")]
pub slot: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub signature: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CaptureWrapper<T = Value> {
pub timestamp: i64,
pub account_address: String,
pub data: T,
#[serde(skip_serializing_if = "Option::is_none")]
pub slot: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub signature: Option<String>,
}