pub fn expand_hooks(def: &mut Def) -> proc_macro2::TokenStream {
	let frame_support = &def.frame_support;
	let type_impl_gen = &def.type_impl_generics();
	let type_use_gen = &def.type_use_generics();
	let pallet_ident = &def.pallet_struct.pallet;
	let where_clause = &def.hooks.where_clause;
	let frame_system = &def.frame_system;

	let hooks_item_span = def.item.content.as_mut()
		.expect("Checked by def parser").1[def.hooks.index].span();

	quote::quote_spanned!(hooks_item_span =>
		impl<#type_impl_gen>
			#frame_support::traits::OnFinalize<<T as #frame_system::Config>::BlockNumber>
			for #pallet_ident<#type_use_gen> #where_clause
		{
			fn on_finalize(n: <T as #frame_system::Config>::BlockNumber) {
				<
					Self as #frame_support::traits::Hooks<
						<T as #frame_system::Config>::BlockNumber
					>
				>::on_finalize(n)
			}
		}

		impl<#type_impl_gen>
			#frame_support::traits::OnInitialize<<T as #frame_system::Config>::BlockNumber>
			for #pallet_ident<#type_use_gen> #where_clause
		{
			fn on_initialize(
				n: <T as #frame_system::Config>::BlockNumber
			) -> #frame_support::weights::Weight {
				<
					Self as #frame_support::traits::Hooks<
						<T as #frame_system::Config>::BlockNumber
					>
				>::on_initialize(n)
			}
		}

		impl<#type_impl_gen>
			#frame_support::traits::OnRuntimeUpgrade
			for #pallet_ident<#type_use_gen> #where_clause
		{
			fn on_runtime_upgrade() -> #frame_support::weights::Weight {
				let result = <
					Self as #frame_support::traits::Hooks<
						<T as #frame_system::Config>::BlockNumber
					>
				>::on_runtime_upgrade();

				#frame_support::crate_to_pallet_version!()
					.put_into_storage::<<T as #frame_system::Config>::PalletInfo, Self>();

				let additional_write = <
					<T as #frame_system::Config>::DbWeight as #frame_support::traits::Get<_>
				>::get().writes(1);

				result.saturating_add(additional_write)
			}
		}

		impl<#type_impl_gen>
			#frame_support::traits::OffchainWorker<<T as #frame_system::Config>::BlockNumber>
			for #pallet_ident<#type_use_gen> #where_clause
		{
			fn offchain_worker(n: <T as #frame_system::Config>::BlockNumber) {
				<
					Self as #frame_support::traits::Hooks<
						<T as #frame_system::Config>::BlockNumber
					>
				>::offchain_worker(n)
			}
		}

		impl<#type_impl_gen>
			#frame_support::traits::IntegrityTest
			for #pallet_ident<#type_use_gen> #where_clause
		{
			fn integrity_test() {
				<
					Self as #frame_support::traits::Hooks<
						<T as #frame_system::Config>::BlockNumber
					>
				>::integrity_test()
			}
		}
	)
}
/// * implement the individual traits using the Hooks trait
implement the individual traits using the Hooks trait
implement the individual traits using the Hooks trait
pub fn expand_hooks(def: &mut Def) -> proc_macro2::TokenStream {
	let frame_support = &def.frame_support;
	let type_impl_gen = &def.type_impl_generics();
	let type_use_gen = &def.type_use_generics();
	let pallet_ident = &def.pallet_struct.pallet;
	let where_clause = &def.hooks.where_clause;
	let frame_system = &def.frame_system;
	let hooks_item_span = def.item.content.as_mut()
		.expect("Checked by def parser").1[def.hooks.index].span();
	quote::quote_spanned!(hooks_item_span =>
		impl<#type_impl_gen>
			#frame_support::traits::OnFinalize<<T as #frame_system::Config>::BlockNumber>
			for #pallet_ident<#type_use_gen> #where_clause
		{
			fn on_finalize(n: <T as #frame_system::Config>::BlockNumber) {
				<
					Self as #frame_support::traits::Hooks<
						<T as #frame_system::Config>::BlockNumber
					>
				>::on_finalize(n)
			}
		}
		impl<#type_impl_gen>
			#frame_support::traits::OnInitialize<<T as #frame_system::Config>::BlockNumber>
			for #pallet_ident<#type_use_gen> #where_clause
		{
			fn on_initialize(
				n: <T as #frame_system::Config>::BlockNumber
			) -> #frame_support::weights::Weight {
				<
					Self as #frame_support::traits::Hooks<
						<T as #frame_system::Config>::BlockNumber
					>
				>::on_initialize(n)
			}
		}
		impl<#type_impl_gen>
			#frame_support::traits::OnRuntimeUpgrade
			for #pallet_ident<#type_use_gen> #where_clause
		{
			fn on_runtime_upgrade() -> #frame_support::weights::Weight {
				let result = <
					Self as #frame_support::traits::Hooks<
						<T as #frame_system::Config>::BlockNumber
					>
				>::on_runtime_upgrade();
				#frame_support::crate_to_pallet_version!()
					.put_into_storage::<<T as #frame_system::Config>::PalletInfo, Self>();
				let additional_write = <
					<T as #frame_system::Config>::DbWeight as #frame_support::traits::Get<_>
				>::get().writes(1);
				result.saturating_add(additional_write)
			}
		}
		impl<#type_impl_gen>
			#frame_support::traits::OffchainWorker<<T as #frame_system::Config>::BlockNumber>
			for #pallet_ident<#type_use_gen> #where_clause
		{
			fn offchain_worker(n: <T as #frame_system::Config>::BlockNumber) {
				<
					Self as #frame_support::traits::Hooks<
						<T as #frame_system::Config>::BlockNumber
					>
				>::offchain_worker(n)
			}
		}
		impl<#type_impl_gen>
			#frame_support::traits::IntegrityTest
			for #pallet_ident<#type_use_gen> #where_clause
		{
			fn integrity_test() {
				<
					Self as #frame_support::traits::Hooks<
						<T as #frame_system::Config>::BlockNumber
					>
				>::integrity_test()
			}
		}
	)
}
pub fn expand_hooks ( def : & mut Def ) -> proc_macro2 :: TokenStream { let frame_support = & def . frame_support ; let type_impl_gen = & def . type_impl_generics ( ) ; let type_use_gen = & def . type_use_generics ( ) ; let pallet_ident = & def . pallet_struct . pallet ; let where_clause = & def . hooks . where_clause ; let frame_system = & def . frame_system ; let hooks_item_span = def . item . content . as_mut ( ) . expect ( " " ) . 1 [ def . hooks . index ] . span ( ) ; quote :: quote_spanned ! ( hooks_item_span impl type_impl_gen frame_support traits OnFinalize T as frame_system Config BlockNumber for pallet_ident type_use_gen where_clause { fn on_finalize ( n T as frame_system Config BlockNumber ) { Self as frame_support traits Hooks T as frame_system Config BlockNumber on_finalize ( n ) } } impl type_impl_gen frame_support traits OnInitialize T as frame_system Config BlockNumber for pallet_ident type_use_gen where_clause { fn on_initialize ( n T as frame_system Config BlockNumber ) frame_support weights Weight { Self as frame_support traits Hooks T as frame_system Config BlockNumber on_initialize ( n ) } } impl type_impl_gen frame_support traits OnRuntimeUpgrade for pallet_ident type_use_gen where_clause { fn on_runtime_upgrade ( ) frame_support weights Weight { let result Self as frame_support traits Hooks T as frame_system Config BlockNumber on_runtime_upgrade ( ) frame_support crate_to_pallet_version ( ) put_into_storage T as frame_system Config PalletInfo Self ( ) let additional_write T as frame_system Config DbWeight as frame_support traits Get get ( ) writes ( 1 ) result saturating_add ( additional_write ) } } impl type_impl_gen frame_support traits OffchainWorker T as frame_system Config BlockNumber for pallet_ident type_use_gen where_clause { fn offchain_worker ( n T as frame_system Config BlockNumber ) { Self as frame_support traits Hooks T as frame_system Config BlockNumber offchain_worker ( n ) } } impl type_impl_gen frame_support traits IntegrityTest for pallet_ident type_use_gen where_clause { fn integrity_test ( ) { Self as frame_support traits Hooks T as frame_system Config BlockNumber integrity_test ( ) } } ) }
implement the individual traits using the Hooks trait
implement the individual traits using the Hooks trait
def
&mut Def
def
&mut Def