pub struct OverrideTemplate {
pub id: String,
pub name: String,
pub description: String,
pub protocol: String,
pub idl: Idl,
pub address: AccountAddress,
pub account_type: String,
pub properties: Vec<Property>,
pub constants: HashMap<String, ConstantDefinition>,
pub tags: Vec<String>,
pub llm_context: Option<String>,
}Expand description
A reusable template for creating account overrides Values are mapped directly to IDL fields using dot notation (e.g., “agg.price”, “expo”)
Fields§
§id: StringUnique identifier for the template
name: StringHuman-readable name
description: StringDescription of what this template does
protocol: StringProtocol this template is for (e.g., “Pyth”, “Switchboard”)
idl: IdlIDL for the account structure - defines all available fields and types
address: AccountAddressHow to determine the account address
account_type: StringAccount type name from the IDL (e.g., “PriceAccount”) This specifies which account struct in the IDL to use
properties: Vec<Property>List of editable properties with full metadata
constants: HashMap<String, ConstantDefinition>Protocol-specific constants (e.g., AMM configs, well-known tokens)
Tags for categorization and search
llm_context: Option<String>Optional context/instructions specifically for LLMs using this template This helps LLMs understand how to correctly use the template
Implementations§
Source§impl OverrideTemplate
impl OverrideTemplate
pub fn new( id: String, name: String, description: String, protocol: String, idl: Idl, address: AccountAddress, properties: Vec<Property>, account_type: String, ) -> Self
Sourcepub fn get_constant(&self, name: &str) -> Option<&ConstantDefinition>
pub fn get_constant(&self, name: &str) -> Option<&ConstantDefinition>
Get a constant definition by name
Sourcepub fn is_property_constant_ref(&self, property_name: &str) -> bool
pub fn is_property_constant_ref(&self, property_name: &str) -> bool
Check if a property is a constant reference
Sourcepub fn get_property_constant(
&self,
property_name: &str,
) -> Option<&ConstantDefinition>
pub fn get_property_constant( &self, property_name: &str, ) -> Option<&ConstantDefinition>
Get the constant definition for a property if it’s a constant reference
Sourcepub fn get_property(&self, path: &str) -> Option<&Property>
pub fn get_property(&self, path: &str) -> Option<&Property>
Get a property by its path
Sourcepub fn property_paths(&self) -> Vec<&str>
pub fn property_paths(&self) -> Vec<&str>
Get the list of property paths (for backward compatibility)
Trait Implementations§
Source§impl Clone for OverrideTemplate
impl Clone for OverrideTemplate
Source§fn clone(&self) -> OverrideTemplate
fn clone(&self) -> OverrideTemplate
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OverrideTemplate
impl Debug for OverrideTemplate
Source§impl<'de> Deserialize<'de> for OverrideTemplate
impl<'de> Deserialize<'de> for OverrideTemplate
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for OverrideTemplate
impl PartialEq for OverrideTemplate
Source§impl Serialize for OverrideTemplate
impl Serialize for OverrideTemplate
impl StructuralPartialEq for OverrideTemplate
Auto Trait Implementations§
impl Freeze for OverrideTemplate
impl RefUnwindSafe for OverrideTemplate
impl Send for OverrideTemplate
impl Sync for OverrideTemplate
impl Unpin for OverrideTemplate
impl UnsafeUnpin for OverrideTemplate
impl UnwindSafe for OverrideTemplate
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more