Trait sp_std::default::Default1.0.0[][src]

pub trait Default {
    fn default() -> Self;
}
Expand description

A trait for giving a type a useful default value.

Sometimes, you want to fall back to some kind of default value, and don’t particularly care what it is. This comes up often with structs that define a set of options:

struct SomeOptions {
    foo: i32,
    bar: f32,
}

How can we define some default values? You can use Default:

#[derive(Default)]
struct SomeOptions {
    foo: i32,
    bar: f32,
}

fn main() {
    let options: SomeOptions = Default::default();
}

Now, you get all of the default values. Rust implements Default for various primitives types.

If you want to override a particular option, but still retain the other defaults:

fn main() {
    let options = SomeOptions { foo: 42, ..Default::default() };
}

Derivable

This trait can be used with #[derive] if all of the type’s fields implement Default. When derived, it will use the default value for each field’s type.

How can I implement Default?

Provide an implementation for the default() method that returns the value of your type that should be the default:

enum Kind {
    A,
    B,
    C,
}

impl Default for Kind {
    fn default() -> Self { Kind::A }
}

Examples

#[derive(Default)]
struct SomeOptions {
    foo: i32,
    bar: f32,
}

Required methods

Returns the “default value” for a type.

Default values are often some kind of initial value, identity value, or anything else that may make sense as a default.

Examples

Using built-in default values:

let i: i8 = Default::default();
let (x, y): (Option<String>, f64) = Default::default();
let (a, b, (c, d)): (i32, u32, (bool, bool)) = Default::default();

Making your own:

enum Kind {
    A,
    B,
    C,
}

impl Default for Kind {
    fn default() -> Self { Kind::A }
}

Implementations on Foreign Types

Creates an empty HashSet<T, S> with the Default value for the hasher.

Creates an empty HashMap<K, V, S>, with the Default value for the hasher.

Creates an empty CString.

Constructs an empty OsString.

Creates a new DefaultHasher using new. See its documentation for more.

Constructs a new RandomState.

Creates an empty OsStr.

Creates a new lazy value using Default as the initializing function.

Returns the default value of 0.0

Creates an empty mutable str

Returns the default value of 0.0

Returns the default value of 0

Returns None.

Examples

let opt: Option<u32> = Option::default();
assert!(opt.is_none());

Returns the default value of 0

Creates a new lazy value using Default as the initializing function.

Returns the default value of \x00

Creates a mutable empty slice.

Returns the default value of 0

Returns the default value of 0

Returns the default value of 0

Returns the default value of 0

Returns the default value of false

Returns the default value of 0

Returns the default value of 0

Returns the default value of 0

Returns the default value of 0

Returns the default value of 0

Returns the default value of ()

Creates an empty str

Returns the default value of 0

Creates an empty slice.

Creates an empty BinaryHeap<T>.

Creates an empty LinkedList<T>.

Creates an empty String.

Implementors

impl Default for AnalysisChoice

impl Default for BenchmarkResults

impl Default for BenchmarkConfig

impl Default for BenchmarkList

impl Default for BenchmarkMetadata

impl<K, V, S> Default for BoundedBTreeMap<K, V, S> where
    K: Ord,
    S: Get<u32>, 

impl<T, S> Default for BoundedBTreeSet<T, S> where
    T: Ord,
    S: Get<u32>, 

impl<T, S> Default for BoundedVec<T, S>

impl<T, S> Default for WeakBoundedVec<T, S>

impl<B: Balance, OnDrop: HandleImbalanceDrop<B>, OppositeOnDrop: HandleImbalanceDrop<B>> Default for Imbalance<B, OnDrop, OppositeOnDrop>

impl Default for CallMetadata

impl Default for StorageVersion

impl Default for Pays

impl Default for DispatchClass

impl Default for DispatchInfo

impl Default for PostDispatchInfo

impl Default for RuntimeDbWeight

impl<T: Default> Default for PerDispatchClass<T>

impl Default for GenesisConfig

impl Default for BlockLength

impl Default for ValidationErrors

impl Default for BlockWeights

impl<T: SigningTypes, C: AppCrypto<T::Public, T::Signature>, X> Default for Signer<T, C, X>

impl<T: Default + Config + Send + Sync> Default for CheckWeight<T>

impl Default for GenesisConfig

impl Default for Phase

impl<Index: Default, AccountData: Default> Default for AccountInfo<Index, AccountData>

impl Default for InitKind

impl<T> Default for ChainContext<T>

impl Default for Extensions

impl Default for DebugPrinter

impl Default for ProxyType

impl Default for SessionKeys

impl Default for NposSolution16

impl Default for GenesisConfig

impl Default for SessionKeys

impl Default for GenesisConfig

impl Default for GenesisParameters

impl<Balance: Default, DepositBalance: Default> Default for Approval<Balance, DepositBalance>

impl<Balance: Default, Extra: Default> Default for AssetBalance<Balance, Extra>

impl<DepositBalance: Default, BoundedString: Default> Default for AssetMetadata<DepositBalance, BoundedString>

impl<T: Config> Default for GenesisConfig<T>

impl Default for GenesisConfig

impl<I, R, L> Default for EquivocationHandler<I, R, L>

impl Default for GenesisConfig

impl<T: Config<I>, I: 'static> Default for GenesisConfig<T, I>

impl<Balance: Default> Default for AccountData<Balance>

impl<T: Config<I>, I: 'static> Default for PositiveImbalance<T, I>

impl<T: Config<I>, I: 'static> Default for NegativeImbalance<T, I>

impl<T: Config<I>, I: Instance> Default for GenesisConfig<T, I>

impl<T: Config> Default for Schedule<T>

impl Default for Limits

impl<T: Config> Default for InstructionWeights<T>

impl<T: Config> Default for HostFnWeights<T>

impl Default for Conviction

impl<Balance: Default> Default for Tally<Balance>

impl<Balance: Default> Default for Delegations<Balance>

impl Default for Vote

impl<Balance: Default, AccountId, BlockNumber: Zero> Default for Voting<Balance, AccountId, BlockNumber>

impl<T: Config> Default for GenesisConfig<T>

impl<AccountId: Default, Balance: Default + HasCompact, Solution: Default> Default for SignedSubmission<AccountId, Balance, Solution>

impl<Bn> Default for Phase<Bn>

impl Default for ElectionCompute

impl<C: Default> Default for RawSolution<C>

impl<A: Default> Default for ReadySolution<A>

impl<A: Default> Default for RoundSnapshot<A>

impl Default for SolutionOrSnapshotSize

impl<Balance: Default> Default for VoterInfo<Balance>

impl<T: Config> Default for GenesisConfig<T>

impl<AccountId: Default, Balance: Default> Default for Voter<AccountId, Balance>

impl<AccountId: Default, Balance: Default> Default for SeatHolder<AccountId, Balance>

impl<T: Config> Default for GenesisConfig<T>

impl<T: Config> Default for GenesisConfig<T>

impl Default for Public

impl Default for Signature

impl<Balance: Default, AccountId: Default> Default for GiltBid<Balance, AccountId>

impl<Balance: Default, AccountId: Default, BlockNumber: Default> Default for ActiveGilt<Balance, AccountId, BlockNumber>

impl<Balance: Default> Default for ActiveGiltsTotal<Balance>

impl Default for GenesisConfig

impl<I, R, L, O> Default for EquivocationHandler<I, R, L, O>

impl Default for GenesisConfig

impl Default for Data

impl Default for IdentityFields

impl<T: Config> Default for GenesisConfig<T>

impl<T: Config> Default for GenesisConfig<T>

impl<BlockNumber: Default, Balance: Default> Default for LotteryConfig<BlockNumber, Balance>

impl<T: Config<I>, I: Instance> Default for GenesisConfig<T, I>

impl<BlockNumber: Default> Default for Timepoint<BlockNumber>

impl<BlockNumber: Default, Balance: Default, AccountId: Default> Default for Multisig<BlockNumber, Balance, AccountId>

impl<T: Config> Default for GenesisConfig<T>

impl<BlockNumber: Default, Balance: Default, AccountId: Default> Default for ActiveRecovery<BlockNumber, Balance, AccountId>

impl<BlockNumber: Default, Balance: Default, AccountId: Default> Default for RecoveryConfig<BlockNumber, Balance, AccountId>

impl Default for GenesisConfig

impl<T: Config<I>, I: 'static> Default for GenesisConfig<T, I>

impl<T: Config> Default for GenesisConfig<T>

impl<Balance: Default, BlockNumber: Default> Default for Payout<Balance, BlockNumber>

impl<T: Config<I>, I: Instance> Default for GenesisConfig<T, I>

impl<T: Config> Default for GenesisConfig<T>

impl<AccountId: Default + Ord> Default for EraRewardPoints<AccountId>

impl<AccountId> Default for RewardDestination<AccountId>

impl Default for ValidatorPrefs

impl<AccountId: Default, Balance: Default + HasCompact> Default for Exposure<AccountId, Balance>

impl<AccountId: Default, Balance: Default + HasCompact> Default for UnappliedSlash<AccountId, Balance>

impl Default for Forcing

impl<T: Config> Default for GenesisConfig<T>

impl<Balance: Default> Default for RuntimeDispatchInfo<Balance>

impl Default for GenesisConfig

impl<T: Config> Default for GenesisConfig<T>

impl Default for GenesisConfig

impl<AccountId: Default, DepositBalance: Default> Default for InstanceDetails<AccountId, DepositBalance>

impl<DepositBalance: Default, StringLimit: Default + Get<u32>> Default for ClassMetadata<DepositBalance, StringLimit>

impl<DepositBalance: Default, StringLimit: Default + Get<u32>> Default for InstanceMetadata<DepositBalance, StringLimit>

impl<T: Config> Default for GenesisConfig<T>

impl<B: BlockT> Default for Mode<B>

impl<B: BlockT> Default for OnlineConfig<B>

impl Default for SnapshotConfig

impl<B: BlockT> Default for Builder<B>

impl Default for WorkerConfig

impl Default for RecordProof

impl<B: Ord, T: Group + Default> Default for Forks<B, T>

impl Default for ChainType

impl Default for MemorySize

impl Default for StateDbMemoryInfo

impl Default for MemoryInfo

impl Default for IoInfo

impl Default for UsageInfo

impl Default for ExecutionStrategies

impl<Block: Block> Default for ExecutionExtensions<Block>

impl<Block: BlockT> Default for Blockchain<Block>

impl<Header: Default + HeaderT> Default for RemoteHeaderRequest<Header> where
    Header::Hash: Default,
    Header::Number: Default

impl<Header: Default + HeaderT> Default for RemoteBodyRequest<Header>

impl<Block: BlockT> Default for StorageNotifications<Block>

impl Default for ImportedAux

impl Default for CheckForEquivocation

impl Default for EpochAuthorship

impl<Hash, Number, E: Epoch> Default for EpochChanges<Hash, Number, E> where
    Hash: PartialEq + Ord,
    Number: Ord

impl<Difficulty: Default> Default for PowIntermediate<Difficulty>

impl<Difficulty: Default> Default for PowAux<Difficulty>

impl<N: BaseArithmetic> Default for BackoffAuthoringOnFinalizedHeadLagging<N>

impl Default for WasmExecutionMethod

impl<Block, B> Default for VotingRulesBuilder<Block, B> where
    Block: BlockT,
    B: HeaderBackend<Block> + 'static, 

impl Default for OutputFormat

impl Default for AlwaysBadChecker

impl Default for BitswapConfig

impl Default for SyncMode

impl Default for SetConfig

impl Default for NodeKeyConfig

impl Default for FullPeerConfig

impl Default for MetricsLink

impl Default for Metadata

impl Default for OffchainWorkerConfig

impl Default for RpcMethods

impl<Block: BlockT> Default for ClientConfig<Block>

impl<H: Default + Hash> Default for ChangeSet<H>

impl<H: Default + Hash> Default for CommitSet<H>

impl Default for Constraints

impl Default for PruningMode

impl Default for TracingReceiver

impl Default for Values

impl Default for Options

impl Default for Public

impl Default for Signature

impl Default for Public

impl Default for Signature

impl Default for Public

impl Default for Signature

impl Default for BigUint

impl Default for FixedI64

impl Default for FixedI128

impl Default for FixedU128

impl Default for Percent

impl Default for PerU16

impl Default for Permill

impl Default for Perbill

impl Default for Perquintill

impl Default for RationalInfinite

impl Default for Rational128

impl<Block: BlockT> Default for HeaderMetadataCache<Block>

impl Default for Slot

impl Default for Ss58AddressFormat

impl Default for AccountId32

impl Default for Dummy

impl Default for KeyTypeId

impl Default for CryptoTypeId

impl Default for CryptoTypePublicPair

impl Default for ChangesTrieConfiguration

impl Default for Public

impl Default for Signature

impl Default for Public

impl Default for Signature

impl Default for InMemOffchainStorage

impl Default for PendingRequest

impl Default for TestPersistentOffchainDB

impl Default for OffchainState

impl Default for TestOffchainExt

impl Default for PoolState

impl Default for TestTransactionPoolExt

impl Default for OpaqueNetworkState

impl Default for Timestamp

impl Default for Duration

impl Default for Public

impl Default for Signature

impl Default for TaskExecutor

impl Default for OpaquePeerId

impl Default for MemDb

impl<H: Default> Default for Transaction<H>

impl Default for Extensions

impl<'a> Default for VersionedAuthorityList<'a>

impl Default for InherentData

impl Default for CheckInherentsResult

impl<T> Default for Crossing<T> where
    T: Default + Encode + Decode, 

impl Default for KeyStore

impl<AccountId: Default, P: Default + PerThing> Default for Assignment<AccountId, P>

impl<AccountId: Default> Default for StakedAssignment<AccountId>

impl<VoterIndex: Default, TargetIndex: Default, P: Default + PerThing> Default for IndexAssignment<VoterIndex, TargetIndex, P>

impl<AccountId: Default> Default for Candidate<AccountId>

impl<AccountId: Default> Default for Edge<AccountId>

impl<AccountId: Default> Default for Voter<AccountId>

impl<AccountId: Default> Default for Support<AccountId>

impl Default for NumberOrHex

impl Default for Data

impl Default for TraceError

impl<Item> Default for Digest<Item>

impl<AccountId: Default, AccountIndex> Default for MultiAddress<AccountId, AccountIndex>

impl<T: Default> Default for Request<'static, T>

impl Default for Time

impl<B: BlockNumberProvider> Default for BlockAndTimeDeadline<B>

impl<B: BlockNumberProvider> Default for BlockAndTime<B>

impl Default for RuntimeString

impl Default for UintAuthorityId

impl<T: Default> Default for IdentityLookup<T>

impl Default for ValidTransaction

impl Default for ValidTransactionBuilder

impl Default for MultiSignature

impl Default for MultiSigner

impl Default for AnySignature

impl Default for OpaqueExtrinsic

impl Default for MembershipProof

impl Default for BasicExternalities

impl<H: Hasher> Default for TrieBackend<MemoryDB<H>, H> where
    H::Out: Codec + Ord

impl Default for OffchainOverlayedChanges

impl Default for OverlayedChanges

impl<Transaction, H: Hasher, N: BlockNumber> Default for StorageTransactionCache<Transaction, H, N>

impl<Transaction: Default, H: Hasher, N: BlockNumber> Default for StorageChanges<Transaction, H, N>

impl<Hash: Default> Default for ProofRecorder<Hash>

impl Default for UsageUnit

impl Default for StateMachineStats

impl<H: Hasher, N: ChangesTrieBlockNumber> Default for TestExternalities<H, N> where
    H::Out: Ord + 'static + Codec, 

impl Default for StorageData

impl Default for Storage

impl Default for Timestamp

impl Default for WasmLevel

impl Default for WasmMetadata

impl Default for WasmEntryAttributes

impl<H: Default> Default for NodeCodec<H>

impl Default for TrieStream

impl<H: Default> Default for Layout<H>

impl<T> Default for StatusSinks<T>

impl Default for RuntimeVersion

impl<Block: BlockT, Executor, G: GenesisInit> Default for TestClientBuilder<Block, Executor, Backend<Block>, G>

impl Default for GenesisConfig

impl Default for SessionKeys

impl Default for GenesisParameters

impl Default for LightFetcher

impl Default for ChainState