From c1109721b5235acf17f9efcfcb508eaef16b81d7 Mon Sep 17 00:00:00 2001 From: suscd Date: Wed, 21 Jul 2021 16:54:35 -0700 Subject: [PATCH] lang: Add `AsRef` conversions for accounts to `AccountInfo` (#541) --- lang/src/cpi_account.rs | 6 ++++++ lang/src/program_account.rs | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/lang/src/cpi_account.rs b/lang/src/cpi_account.rs index e7fb293d6..7a2cedf64 100644 --- a/lang/src/cpi_account.rs +++ b/lang/src/cpi_account.rs @@ -87,6 +87,12 @@ impl<'info, T: AccountDeserialize + Clone> ToAccountInfo<'info> for CpiAccount<' } } +impl<'info, T: AccountDeserialize + Clone> AsRef> for CpiAccount<'info, T> { + fn as_ref(&self) -> &AccountInfo<'info> { + &self.info + } +} + impl<'a, T: AccountDeserialize + Clone> Deref for CpiAccount<'a, T> { type Target = T; diff --git a/lang/src/program_account.rs b/lang/src/program_account.rs index 124c792d3..d74135bef 100644 --- a/lang/src/program_account.rs +++ b/lang/src/program_account.rs @@ -162,6 +162,14 @@ impl<'info, T: AccountSerialize + AccountDeserialize + Clone> ToAccountInfo<'inf } } +impl<'info, T: AccountSerialize + AccountDeserialize + Clone> AsRef> + for ProgramAccount<'info, T> +{ + fn as_ref(&self) -> &AccountInfo<'info> { + &self.inner.info + } +} + impl<'a, T: AccountSerialize + AccountDeserialize + Clone> Deref for ProgramAccount<'a, T> { type Target = T;