pezkuwi-subxt-codegen 0.44.0

Generate an API for interacting with a Pezkuwi/Bizinikiwi node from FRAME metadata
Documentation
// Copyright 2019-2025 Parity Technologies (UK) Ltd.
// This file is dual-licensed as Apache-2.0 or GPL-3.0.
// see LICENSE for license details.

use crate::error::CodegenError;
use syn::token;

#[derive(Debug, PartialEq, Eq)]
pub struct ItemMod {
	vis: syn::Visibility,
	mod_token: token::Mod,
	pub ident: syn::Ident,
	brace: token::Brace,
	items: Vec<syn::Item>,
}

impl TryFrom<syn::ItemMod> for ItemMod {
	type Error = CodegenError;

	fn try_from(module: syn::ItemMod) -> Result<Self, Self::Error> {
		let (brace, items) = match module.content {
			Some((brace, items)) => (brace, items),
			None => return Err(CodegenError::InvalidModule(module.ident.span())),
		};

		Ok(Self { vis: module.vis, mod_token: module.mod_token, ident: module.ident, brace, items })
	}
}

impl ItemMod {
	pub fn rust_items(&self) -> impl Iterator<Item = &syn::Item> {
		self.items.iter()
	}
}