diff --git a/frame/support/src/storage/bounded_vec.rs b/frame/support/src/storage/bounded_vec.rs index 644444960e5f4..3b8d3a82861a0 100644 --- a/frame/support/src/storage/bounded_vec.rs +++ b/frame/support/src/storage/bounded_vec.rs @@ -22,7 +22,7 @@ use sp_std::prelude::*; use sp_std::{convert::TryFrom, marker::PhantomData}; use codec::{FullCodec, Encode, EncodeLike, Decode}; use crate::{ - traits::{Get, BoundedEncodedLen}, + traits::{Get, MaxEncodedLen}, storage::{generator, StorageDecodeLength, StorageValue, StorageMap, StorageDoubleMap}, }; @@ -319,9 +319,9 @@ impl< } } -impl BoundedEncodedLen for BoundedVec +impl MaxEncodedLen for BoundedVec where - T: BoundedVecValue + BoundedEncodedLen, + T: BoundedVecValue + MaxEncodedLen, S: Get, BoundedVec: Encode, { diff --git a/frame/support/src/traits.rs b/frame/support/src/traits.rs index 35936d40b47f3..d15356c1e1b09 100644 --- a/frame/support/src/traits.rs +++ b/frame/support/src/traits.rs @@ -81,5 +81,5 @@ pub use dispatch::{EnsureOrigin, OriginTrait, UnfilteredDispatchable}; mod voting; pub use voting::{CurrencyToVote, SaturatingCurrencyToVote, U128CurrencyToVote}; -mod bounded_encoded_length; -pub use bounded_encoded_length::BoundedEncodedLen; +mod max_encoded_len; +pub use max_encoded_len::MaxEncodedLen; diff --git a/frame/support/src/traits/bounded_encoded_length.rs b/frame/support/src/traits/max_encoded_len.rs similarity index 84% rename from frame/support/src/traits/bounded_encoded_length.rs rename to frame/support/src/traits/max_encoded_len.rs index 14ed50344e5b4..d30222a1906fe 100644 --- a/frame/support/src/traits/bounded_encoded_length.rs +++ b/frame/support/src/traits/max_encoded_len.rs @@ -19,13 +19,13 @@ use codec::{Compact, Encode}; use impl_trait_for_tuples::impl_for_tuples; use sp_std::{mem, marker::PhantomData}; -/// Items implementing `BoundedEncodedLen` have a statically known maximum encoded size. +/// Items implementing `MaxEncodedLen` have a statically known maximum encoded size. /// /// Some containers, such as `BoundedVec`, have enforced size limits and this trait /// can be implemented accurately. Other containers, such as `StorageMap`, do not have enforced size /// limits. For those containers, it is necessary to make a documented assumption about the maximum /// usage, and compute the max encoded length based on that assumption. -pub trait BoundedEncodedLen: Encode { +pub trait MaxEncodedLen: Encode { /// Upper bound, in bytes, of the maximum encoded size of this item. fn max_encoded_len() -> usize; } @@ -33,7 +33,7 @@ pub trait BoundedEncodedLen: Encode { macro_rules! impl_primitives { ( $($t:ty),+ ) => { $( - impl BoundedEncodedLen for $t { + impl MaxEncodedLen for $t { fn max_encoded_len() -> usize { mem::size_of::<$t>() } @@ -47,7 +47,7 @@ impl_primitives!(u8, u16, u32, u64, u128, i8, i16, i32, i64, i128, bool); macro_rules! impl_compact { ($( $t:ty => $e:expr; )*) => { $( - impl BoundedEncodedLen for Compact<$t> { + impl MaxEncodedLen for Compact<$t> { fn max_encoded_len() -> usize { $e } @@ -71,7 +71,7 @@ impl_compact!( // impl_for_tuples for values 19 and higher fails because that's where the WrapperTypeEncode impl stops. #[impl_for_tuples(18)] -impl BoundedEncodedLen for Tuple { +impl MaxEncodedLen for Tuple { fn max_encoded_len() -> usize { let mut len: usize = 0; for_tuples!( #( len = len.saturating_add(Tuple::max_encoded_len()); )* ); @@ -79,29 +79,29 @@ impl BoundedEncodedLen for Tuple { } } -impl BoundedEncodedLen for [T; N] { +impl MaxEncodedLen for [T; N] { fn max_encoded_len() -> usize { T::max_encoded_len().saturating_mul(N) } } -impl BoundedEncodedLen for Option { +impl MaxEncodedLen for Option { fn max_encoded_len() -> usize { T::max_encoded_len().saturating_add(1) } } -impl BoundedEncodedLen for Result +impl MaxEncodedLen for Result where - T: BoundedEncodedLen, - E: BoundedEncodedLen, + T: MaxEncodedLen, + E: MaxEncodedLen, { fn max_encoded_len() -> usize { T::max_encoded_len().max(E::max_encoded_len()).saturating_add(1) } } -impl BoundedEncodedLen for PhantomData { +impl MaxEncodedLen for PhantomData { fn max_encoded_len() -> usize { 0 }