diff --git a/frozen-abi/src/abi_example.rs b/frozen-abi/src/abi_example.rs index c7765c4a573544..976668d487b3e0 100644 --- a/frozen-abi/src/abi_example.rs +++ b/frozen-abi/src/abi_example.rs @@ -555,3 +555,10 @@ impl AbiEnumVisitor for Result { digester.create_child() } } + +#[cfg(not(target_os = "solana"))] +impl AbiExample for std::sync::OnceLock { + fn example() -> Self { + Self::from(T::example()) + } +} diff --git a/vote/src/vote_account.rs b/vote/src/vote_account.rs index cd4d538b2ccc80..c4ddd43b2051c9 100644 --- a/vote/src/vote_account.rs +++ b/vote/src/vote_account.rs @@ -1,5 +1,3 @@ -#[cfg(RUSTC_WITH_SPECIALIZATION)] -use solana_frozen_abi::abi_example::AbiExample; use { itertools::Itertools, serde::ser::{Serialize, Serializer}, @@ -30,7 +28,7 @@ pub enum Error { InvalidOwner(/*owner:*/ Pubkey), } -#[derive(Debug)] +#[derive(Debug, AbiExample)] struct VoteAccountInner { account: AccountSharedData, vote_state: OnceLock>, @@ -38,7 +36,7 @@ struct VoteAccountInner { pub type VoteAccountsHashMap = HashMap; -#[derive(Clone, Debug, Deserialize)] +#[derive(Clone, Debug, Deserialize, AbiExample)] #[serde(from = "Arc")] pub struct VoteAccounts { vote_accounts: Arc, @@ -321,26 +319,6 @@ impl Serialize for VoteAccounts { } } -#[cfg(RUSTC_WITH_SPECIALIZATION)] -impl AbiExample for VoteAccountInner { - fn example() -> Self { - Self { - account: AccountSharedData::example(), - vote_state: OnceLock::from(Result::::example()), - } - } -} - -#[cfg(RUSTC_WITH_SPECIALIZATION)] -impl AbiExample for VoteAccounts { - fn example() -> Self { - Self { - vote_accounts: Arc::::example(), - staked_nodes: OnceLock::from(Arc::>::example()), - } - } -} - #[cfg(test)] mod tests { use {