pub mod ast;
pub mod compiler;
pub mod metrics_context;
pub mod proto_router;
pub mod resolvers;
pub mod rust;
pub mod spec_trait;
pub mod typescript;
pub mod vm;
pub use metrics_context::{FieldAccessor, FieldRef, MetricsContext};
pub use resolvers::{InstructionContext, KeyResolution, ResolveContext, ReverseLookupUpdater};
pub use typescript::{write_typescript_to_file, TypeScriptCompiler, TypeScriptConfig};
pub use vm::{PendingAccountUpdate, PendingQueueStats, UpdateContext};
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,
}
#[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>,
}