pub struct ManifestRegistry<const N: usize> { /* private fields */ }Expand description
A static registry of all layout manifests for a program.
Pass this to identify_account or CLI tooling to decode
arbitrary accounts from a program.
ⓘ
const MANIFESTS: ManifestRegistry<3> = ManifestRegistry::new(&[
VAULT_MANIFEST,
POOL_MANIFEST,
POSITION_MANIFEST,
]);
if let Some((idx, manifest)) = MANIFESTS.identify(data) {
// Found matching layout
}Implementations§
Source§impl<const N: usize> ManifestRegistry<N>
impl<const N: usize> ManifestRegistry<N>
Sourcepub const fn from_slice(manifests: &[LayoutManifest]) -> Self
pub const fn from_slice(manifests: &[LayoutManifest]) -> Self
Create a registry from a slice of manifests.
Sourcepub fn identify(&self, data: &[u8]) -> Option<(usize, &LayoutManifest)>
pub fn identify(&self, data: &[u8]) -> Option<(usize, &LayoutManifest)>
Try to identify an account from header data.
Sourcepub fn get(&self, index: usize) -> Option<&LayoutManifest>
pub fn get(&self, index: usize) -> Option<&LayoutManifest>
Get a manifest by index.
Sourcepub fn find_by_disc(&self, disc: u8) -> Option<&LayoutManifest>
pub fn find_by_disc(&self, disc: u8) -> Option<&LayoutManifest>
Find a manifest by discriminator.
Sourcepub fn find_by_layout_id(&self, layout_id: &[u8; 8]) -> Option<&LayoutManifest>
pub fn find_by_layout_id(&self, layout_id: &[u8; 8]) -> Option<&LayoutManifest>
Find a manifest by layout_id.
Auto Trait Implementations§
impl<const N: usize> Freeze for ManifestRegistry<N>
impl<const N: usize> RefUnwindSafe for ManifestRegistry<N>
impl<const N: usize> Send for ManifestRegistry<N>
impl<const N: usize> Sync for ManifestRegistry<N>
impl<const N: usize> Unpin for ManifestRegistry<N>
impl<const N: usize> UnsafeUnpin for ManifestRegistry<N>
impl<const N: usize> UnwindSafe for ManifestRegistry<N>
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
Mutably borrows from an owned value. Read more