Trait sgx_tstd::default::Default 1.0.0[−][src]
pub trait Default {
fn default() -> Self;
}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() -> Kind { Kind::A } }
Examples
#[derive(Default)] struct SomeOptions { foo: i32, bar: f32, }
Required Methods
fn default() -> Self
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() -> Kind { Kind::A } }
Implementations on Foreign Types
impl Default for Duration[src]
impl Default for Durationimpl Default for Global[src]
impl Default for Globalimpl Default for sgx_ps_cap_t[src]
impl Default for sgx_ps_cap_tfn default() -> sgx_ps_cap_t[src]
fn default() -> sgx_ps_cap_timpl Default for sgx_cpu_context_t[src]
impl Default for sgx_cpu_context_tfn default() -> sgx_cpu_context_t[src]
fn default() -> sgx_cpu_context_timpl Default for sgx_ra_msg3_t[src]
impl Default for sgx_ra_msg3_tfn default() -> sgx_ra_msg3_t[src]
fn default() -> sgx_ra_msg3_timpl Default for sgx_mc_uuid_t[src]
impl Default for sgx_mc_uuid_tfn default() -> sgx_mc_uuid_t[src]
fn default() -> sgx_mc_uuid_timpl Default for ecc_param_t[src]
impl Default for ecc_param_tfn default() -> ecc_param_t[src]
fn default() -> ecc_param_timpl Default for sgx_dh_session_role_t[src]
impl Default for sgx_dh_session_role_tfn default() -> sgx_dh_session_role_t[src]
fn default() -> sgx_dh_session_role_timpl Default for sgx_report_data_t[src]
impl Default for sgx_report_data_tfn default() -> sgx_report_data_t[src]
fn default() -> sgx_report_data_timpl Default for sgx_ec256_public_t[src]
impl Default for sgx_ec256_public_tfn default() -> sgx_ec256_public_t[src]
fn default() -> sgx_ec256_public_timpl Default for sgx_spid_t[src]
impl Default for sgx_spid_tfn default() -> sgx_spid_t[src]
fn default() -> sgx_spid_timpl Default for sgx_uswitchless_worker_event_t[src]
impl Default for sgx_uswitchless_worker_event_timpl Default for sgx_quote_t[src]
impl Default for sgx_quote_tfn default() -> sgx_quote_t[src]
fn default() -> sgx_quote_timpl Default for sgx_dh_msg1_t[src]
impl Default for sgx_dh_msg1_tfn default() -> sgx_dh_msg1_t[src]
fn default() -> sgx_dh_msg1_timpl Default for sgx_uswitchless_worker_type_t[src]
impl Default for sgx_uswitchless_worker_type_timpl Default for sgx_dh_msg3_t[src]
impl Default for sgx_dh_msg3_tfn default() -> sgx_dh_msg3_t[src]
fn default() -> sgx_dh_msg3_timpl Default for sgx_report_t[src]
impl Default for sgx_report_tfn default() -> sgx_report_t[src]
fn default() -> sgx_report_timpl Default for sgx_misc_attribute_t[src]
impl Default for sgx_misc_attribute_tfn default() -> sgx_misc_attribute_t[src]
fn default() -> sgx_misc_attribute_timpl Default for sgx_basename_t[src]
impl Default for sgx_basename_tfn default() -> sgx_basename_t[src]
fn default() -> sgx_basename_timpl Default for sgx_dh_session_t[src]
impl Default for sgx_dh_session_tfn default() -> sgx_dh_session_t[src]
fn default() -> sgx_dh_session_timpl Default for sgx_thread_mutexattr_t[src]
impl Default for sgx_thread_mutexattr_tfn default() -> sgx_thread_mutexattr_t[src]
fn default() -> sgx_thread_mutexattr_timpl Default for sgx_dh_session_enclave_identity_t[src]
impl Default for sgx_dh_session_enclave_identity_timpl Default for sgx_thread_condattr_t[src]
impl Default for sgx_thread_condattr_tfn default() -> sgx_thread_condattr_t[src]
fn default() -> sgx_thread_condattr_timpl Default for sgx_measurement_t[src]
impl Default for sgx_measurement_tfn default() -> sgx_measurement_t[src]
fn default() -> sgx_measurement_timpl Default for sgx_exception_info_t[src]
impl Default for sgx_exception_info_tfn default() -> sgx_exception_info_t[src]
fn default() -> sgx_exception_info_timpl Default for sgx_rsa_result_t[src]
impl Default for sgx_rsa_result_tfn default() -> sgx_rsa_result_t[src]
fn default() -> sgx_rsa_result_timpl Default for sgx_update_info_bit_t[src]
impl Default for sgx_update_info_bit_tfn default() -> sgx_update_info_bit_t[src]
fn default() -> sgx_update_info_bit_timpl Default for sgx_generic_ecresult_t[src]
impl Default for sgx_generic_ecresult_tfn default() -> sgx_generic_ecresult_t[src]
fn default() -> sgx_generic_ecresult_timpl Default for sgx_status_t[src]
impl Default for sgx_status_tfn default() -> sgx_status_t[src]
fn default() -> sgx_status_timpl Default for sgx_uswitchless_worker_stats_t[src]
impl Default for sgx_uswitchless_worker_stats_timpl Default for sgx_ps_sec_prop_desc_t[src]
impl Default for sgx_ps_sec_prop_desc_tfn default() -> sgx_ps_sec_prop_desc_t[src]
fn default() -> sgx_ps_sec_prop_desc_timpl Default for sgx_rsa3072_signature_t[src]
impl Default for sgx_rsa3072_signature_tfn default() -> sgx_rsa3072_signature_t[src]
fn default() -> sgx_rsa3072_signature_timpl Default for rsa_params_t[src]
impl Default for rsa_params_tfn default() -> rsa_params_t[src]
fn default() -> rsa_params_timpl Default for sgx_key_request_t[src]
impl Default for sgx_key_request_tfn default() -> sgx_key_request_t[src]
fn default() -> sgx_key_request_timpl Default for sgx_dh_msg2_t[src]
impl Default for sgx_dh_msg2_tfn default() -> sgx_dh_msg2_t[src]
fn default() -> sgx_dh_msg2_timpl Default for sgx_dh_msg3_body_t[src]
impl Default for sgx_dh_msg3_body_tfn default() -> sgx_dh_msg3_body_t[src]
fn default() -> sgx_dh_msg3_body_timpl Default for sgx_target_info_t[src]
impl Default for sgx_target_info_tfn default() -> sgx_target_info_t[src]
fn default() -> sgx_target_info_timpl Default for sgx_ec256_signature_t[src]
impl Default for sgx_ec256_signature_tfn default() -> sgx_ec256_signature_t[src]
fn default() -> sgx_ec256_signature_timpl Default for sgx_rsa_key_type_t[src]
impl Default for sgx_rsa_key_type_tfn default() -> sgx_rsa_key_type_t[src]
fn default() -> sgx_rsa_key_type_timpl Default for sgx_report_body_t[src]
impl Default for sgx_report_body_tfn default() -> sgx_report_body_t[src]
fn default() -> sgx_report_body_timpl Default for sgx_ec256_dh_shared_t[src]
impl Default for sgx_ec256_dh_shared_tfn default() -> sgx_ec256_dh_shared_t[src]
fn default() -> sgx_ec256_dh_shared_timpl Default for sgx_ra_msg1_t[src]
impl Default for sgx_ra_msg1_tfn default() -> sgx_ra_msg1_t[src]
fn default() -> sgx_ra_msg1_timpl Default for sgx_ec256_private_t[src]
impl Default for sgx_ec256_private_tfn default() -> sgx_ec256_private_t[src]
fn default() -> sgx_ec256_private_timpl Default for sgx_exception_type_t[src]
impl Default for sgx_exception_type_tfn default() -> sgx_exception_type_t[src]
fn default() -> sgx_exception_type_timpl Default for sgx_ra_msg2_t[src]
impl Default for sgx_ra_msg2_tfn default() -> sgx_ra_msg2_t[src]
fn default() -> sgx_ra_msg2_timpl Default for sgx_ps_sec_prop_desc_ex_t[src]
impl Default for sgx_ps_sec_prop_desc_ex_timpl Default for sgx_platform_info_t[src]
impl Default for sgx_platform_info_tfn default() -> sgx_platform_info_t[src]
fn default() -> sgx_platform_info_timpl Default for sgx_uswitchless_config_t[src]
impl Default for sgx_uswitchless_config_tfn default() -> sgx_uswitchless_config_t[src]
fn default() -> sgx_uswitchless_config_timpl Default for sgx_ra_key_type_t[src]
impl Default for sgx_ra_key_type_tfn default() -> sgx_ra_key_type_t[src]
fn default() -> sgx_ra_key_type_timpl Default for sgx_key_id_t[src]
impl Default for sgx_key_id_tfn default() -> sgx_key_id_t[src]
fn default() -> sgx_key_id_timpl Default for sgx_quote_nonce_t[src]
impl Default for sgx_quote_nonce_tfn default() -> sgx_quote_nonce_t[src]
fn default() -> sgx_quote_nonce_timpl Default for sgx_cpu_svn_t[src]
impl Default for sgx_cpu_svn_tfn default() -> sgx_cpu_svn_t[src]
fn default() -> sgx_cpu_svn_timpl Default for sgx_rsa3072_key_t[src]
impl Default for sgx_rsa3072_key_tfn default() -> sgx_rsa3072_key_t[src]
fn default() -> sgx_rsa3072_key_timpl Default for sgx_rsa3072_public_key_t[src]
impl Default for sgx_rsa3072_public_key_tfn default() -> sgx_rsa3072_public_key_t[src]
fn default() -> sgx_rsa3072_public_key_timpl Default for sgx_device_status_t[src]
impl Default for sgx_device_status_tfn default() -> sgx_device_status_t[src]
fn default() -> sgx_device_status_timpl Default for sgx_sealed_data_t[src]
impl Default for sgx_sealed_data_tfn default() -> sgx_sealed_data_t[src]
fn default() -> sgx_sealed_data_timpl Default for sgx_exception_vector_t[src]
impl Default for sgx_exception_vector_tfn default() -> sgx_exception_vector_t[src]
fn default() -> sgx_exception_vector_timpl Default for sgx_attributes_t[src]
impl Default for sgx_attributes_tfn default() -> sgx_attributes_t[src]
fn default() -> sgx_attributes_timpl Default for sgx_aes_gcm_data_t[src]
impl Default for sgx_aes_gcm_data_tfn default() -> sgx_aes_gcm_data_t[src]
fn default() -> sgx_aes_gcm_data_timpl Default for sgx_quote_sign_type_t[src]
impl Default for sgx_quote_sign_type_tfn default() -> sgx_quote_sign_type_t[src]
fn default() -> sgx_quote_sign_type_tImplementors
impl<A, B, C, D, E, F, G, H, I, J, K, L> Default for (A, B, C, D, E, F, G, H, I, J, K, L) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,
G: Default,
H: Default,
I: Default,
J: Default,
K: Default,
L: Default,impl<T> Default for [T; 23] where
T: Default,impl<T> Default for [T; 3] where
T: Default,impl Default for SipHasherimpl Default for f32impl<H> Default for BuildHasherDefault<H>impl Default for i8impl<T> Default for Option<T>impl<T> Default for [T; 28] where
T: Default,impl<T> Default for [T; 26] where
T: Default,impl<T> Default for [T; 8] where
T: Default,impl<T> Default for [T; 10] where
T: Default,impl<T> Default for UnsafeCell<T> where
T: Default,impl<T> Default for [T; 1] where
T: Default,impl<T> Default for Empty<T>impl Default for i32impl Default for AtomicI8impl<A, B, C, D> Default for (A, B, C, D) where
A: Default,
B: Default,
C: Default,
D: Default,impl<A, B> Default for (A, B) where
A: Default,
B: Default,impl Default for i128impl<T> Default for Wrapping<T> where
T: Default,impl<T> Default for [T; 21] where
T: Default,impl<T> Default for [T; 2] where
T: Default,impl<T> Default for ManuallyDrop<T> where
T: Default,impl<T> Default for [T; 24] where
T: Default,impl<A, B, C, D, E> Default for (A, B, C, D, E) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,impl Default for usizeimpl Default for u16impl Default for AtomicBoolimpl<T> Default for [T; 25] where
T: Default,impl<T> Default for [T; 6] where
T: Default,impl Default for charimpl Default for ()impl Default for Errorimpl<T> Default for [T; 17] where
T: Default,impl Default for u128impl Default for AtomicU16impl<'a, T> Default for &'a [T]impl<T> Default for AtomicPtr<T>impl<A, B, C, D, E, F> Default for (A, B, C, D, E, F) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,impl Default for AtomicI32impl<T> Default for [T; 4] where
T: Default,impl<T> Default for [T; 14] where
T: Default,impl<T> Default for [T; 11] where
T: Default,impl<A, B, C, D, E, F, G, H> Default for (A, B, C, D, E, F, G, H) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,
G: Default,
H: Default,impl<T> Default for [T; 13] where
T: Default,impl Default for u8impl Default for AtomicI64impl<A, B, C, D, E, F, G, H, I, J> Default for (A, B, C, D, E, F, G, H, I, J) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,
G: Default,
H: Default,
I: Default,
J: Default,impl<'a> Default for &'a mut strimpl<T> Default for [T; 31] where
T: Default,impl<T> Default for [T; 30] where
T: Default,impl Default for u32impl<T> Default for Reverse<T> where
T: Default,impl<T> Default for [T; 29] where
T: Default,impl<T> Default for [T; 18] where
T: Default,impl<'a> Default for &'a strimpl Default for AtomicU32impl Default for isizeimpl<T> Default for [T; 15] where
T: Default,impl<T> Default for [T; 32] where
T: Default,impl<T> Default for PhantomData<T> where
T: ?Sized,impl<'a, T> Default for &'a mut [T]impl Default for f64impl<A, B, C, D, E, F, G> Default for (A, B, C, D, E, F, G) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,
G: Default,impl Default for boolimpl<T> Default for [T; 5] where
T: Default,impl Default for AtomicU64impl<T> Default for [T; 7] where
T: Default,impl Default for u64impl<T> Default for [T; 16] where
T: Default,impl<T> Default for [T; 22] where
T: Default,impl Default for AtomicUsizeimpl Default for i64impl<T> Default for RefCell<T> where
T: Default,impl<T> Default for [T; 0]impl<T> Default for [T; 20] where
T: Default,impl Default for AtomicIsizeimpl<A> Default for (A,) where
A: Default,impl<T> Default for [T; 9] where
T: Default,impl<T> Default for [T; 12] where
T: Default,impl<T> Default for Cell<T> where
T: Default,impl<T> Default for [T; 19] where
T: Default,impl<T> Default for [T; 27] where
T: Default,impl Default for AtomicI16impl Default for AtomicU8impl<A, B, C, D, E, F, G, H, I, J, K> Default for (A, B, C, D, E, F, G, H, I, J, K) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,
G: Default,
H: Default,
I: Default,
J: Default,
K: Default,impl<A, B, C> Default for (A, B, C) where
A: Default,
B: Default,
C: Default,impl Default for i16impl<A, B, C, D, E, F, G, H, I> Default for (A, B, C, D, E, F, G, H, I) where
A: Default,
B: Default,
C: Default,
D: Default,
E: Default,
F: Default,
G: Default,
H: Default,
I: Default,impl<T> Default for Rc<T> where
T: Default,impl Default for Stringimpl<T> Default for sgx_tstd::rc::Weak<T>impl<T> Default for Box<[T]>impl<T> Default for BinaryHeap<T> where
T: Ord,impl<T> Default for sgx_tstd::sync::Weak<T>impl<T> Default for LinkedList<T>impl<K, V> Default for BTreeMap<K, V> where
K: Ord,impl<'a, B> Default for Cow<'a, B> where
B: ToOwned + ?Sized,
<B as ToOwned>::Owned: Default,impl<T> Default for Arc<T> where
T: Default,impl<T> Default for BTreeSet<T> where
T: Ord,impl Default for Box<str>impl<T> Default for VecDeque<T>impl<T> Default for Vec<T>impl<T> Default for Box<T> where
T: Default,impl<'a> Default for &'a CStrimpl Default for Box<CStr>impl Default for CStringimpl<K, V, S> Default for HashMap<K, V, S> where
K: Eq + Hash,
S: BuildHasher + Default,impl Default for DefaultHasherimpl Default for RandomStateimpl<T, S> Default for HashSet<T, S> where
T: Eq + Hash,
S: BuildHasher + Default,impl Default for OsStringimpl Default for Box<OsStr>impl<'a> Default for &'a OsStrimpl Default for PathBufimpl Default for SgxCondvarimpl<T: ?Sized + Default> Default for SgxMutex<T>impl<T: Default> Default for SgxRwLock<T>impl Default for SgxSpinlockimpl Default for sgx_tstd::time::Duration