//! This crate, among other things, contains a large library of types and utilities that are used in
//! This crate also contains some types that are often used in conjuncture with Runtime APIs. Most
//! - [`ApplyExtrinsicResult`], and [`DispatchOutcome`], which dictate how the client and runtime
note = "`BuildModuleGenesisStorage` is planned to be removed in December 2023. Use `BuildStorage` instead of it."
/// This is the legacy return type of `Dispatchable`. It is still exposed for compatibility reasons.
/// Return type of a `Dispatchable` which contains the `DispatchResult` and additional information
/// Result of a `Dispatchable` which contains the `DispatchResult` and additional information about
/// Failure of the module call dispatching doesn't invalidate the extrinsic and it is still included
/// in the block, therefore all state changes performed by the dispatched call are still persisted.
/// - More block weight is required to process the extrinsic than is left in the block being built.
/// This doesn't necessarily mean that the extrinsic is invalid, since it can still be included in
/// - The sender doesn't have enough funds to pay the transaction inclusion fee. Including such a
/// Simple blob to hold an extrinsic without committing to its format and ensure it is serialized
/// [`str_array`] is useful when converting strings that end up in the storage as fixed size arrays
/// or in const contexts where static data types have strings that could also end up in the storage.