[−][src]Struct lib3h_zombie_actor::Backtwrap
it seems as though
- linux can caputure resolved backtraces w/o much overhead
- macOs can capture UNresolved backtraces (fn pointers but no debug symbols) without much overhead
- windows cannot capture backtraces at all without major slowdowns
Methods
impl Backtwrap
[src]
pub fn map<__SHRINKWRAP_T, __SHRINKWRAP_F: FnMut(Option<Backtrace>) -> __SHRINKWRAP_T>(
self,
f: __SHRINKWRAP_F
) -> __SHRINKWRAP_T
[src]
self,
f: __SHRINKWRAP_F
) -> __SHRINKWRAP_T
Map a function over the wrapped value, consuming it in the process.
pub fn map_ref<__SHRINKWRAP_T, __SHRINKWRAP_F: FnMut(&Option<Backtrace>) -> __SHRINKWRAP_T>(
&self,
f: __SHRINKWRAP_F
) -> __SHRINKWRAP_T
[src]
&self,
f: __SHRINKWRAP_F
) -> __SHRINKWRAP_T
Map a function over the wrapped value without consuming it.
pub fn map_mut<__SHRINKWRAP_T, __SHRINKWRAP_F>(
&mut self,
f: __SHRINKWRAP_F
) -> __SHRINKWRAP_T where
__SHRINKWRAP_F: FnMut(&mut Option<Backtrace>) -> __SHRINKWRAP_T,
[src]
&mut self,
f: __SHRINKWRAP_F
) -> __SHRINKWRAP_T where
__SHRINKWRAP_F: FnMut(&mut Option<Backtrace>) -> __SHRINKWRAP_T,
Map a function over the wrapped value, potentially changing it in place.
impl Backtwrap
[src]
pub fn new() -> Self
[src]
Capture (or doesn't capture) backtraces based on environment variable
- default - DoNotCapture
- BACKTRACE_STRATEGY=CAPTURE_RESOLVED - CaptureResolved
- BACKTRACE_STRATEGY=CAPTURE_UNRESOLVED - CaptureUnresolved
pub fn get_capture_strategy() -> BacktwrapCaptureStrategy
[src]
get the current capture strategy
pub fn set_capture_strategy(strategy: BacktwrapCaptureStrategy)
[src]
explicitly set the current capture strategy
Methods from Deref<Target = Option<Backtrace>>
#[must_use = "if you intended to assert that this has a value, consider `.unwrap()` instead"]
pub fn is_some(&self) -> bool
1.0.0[src]
Returns true
if the option is a Some
value.
Examples
let x: Option<u32> = Some(2); assert_eq!(x.is_some(), true); let x: Option<u32> = None; assert_eq!(x.is_some(), false);
#[must_use = "if you intended to assert that this doesn\'t have a value, consider `.and_then(|| panic!(\"`Option` had a value when expected `None`\"))` instead"]
pub fn is_none(&self) -> bool
1.0.0[src]
Returns true
if the option is a None
value.
Examples
let x: Option<u32> = Some(2); assert_eq!(x.is_none(), false); let x: Option<u32> = None; assert_eq!(x.is_none(), true);
#[must_use]
pub fn contains<U>(&self, x: &U) -> bool where
U: PartialEq<T>,
[src]
U: PartialEq<T>,
option_result_contains
)Returns true
if the option is a Some
value containing the given value.
Examples
#![feature(option_result_contains)] let x: Option<u32> = Some(2); assert_eq!(x.contains(&2), true); let x: Option<u32> = Some(3); assert_eq!(x.contains(&2), false); let x: Option<u32> = None; assert_eq!(x.contains(&2), false);
pub fn as_ref(&self) -> Option<&T>
1.0.0[src]
Converts from &Option<T>
to Option<&T>
.
Examples
Converts an Option<
String
>
into an Option<
usize
>
, preserving the original.
The map
method takes the self
argument by value, consuming the original,
so this technique uses as_ref
to first take an Option
to a reference
to the value inside the original.
let text: Option<String> = Some("Hello, world!".to_string()); // First, cast `Option<String>` to `Option<&String>` with `as_ref`, // then consume *that* with `map`, leaving `text` on the stack. let text_length: Option<usize> = text.as_ref().map(|s| s.len()); println!("still can print text: {:?}", text);
pub fn as_mut(&mut self) -> Option<&mut T>
1.0.0[src]
Converts from &mut Option<T>
to Option<&mut T>
.
Examples
let mut x = Some(2); match x.as_mut() { Some(v) => *v = 42, None => {}, } assert_eq!(x, Some(42));
pub fn as_pin_ref(self: Pin<&Option<T>>) -> Option<Pin<&T>>
1.33.0[src]
pub fn as_pin_mut(self: Pin<&mut Option<T>>) -> Option<Pin<&mut T>>
1.33.0[src]
pub fn iter(&self) -> Iter<T>
1.0.0[src]
Returns an iterator over the possibly contained value.
Examples
let x = Some(4); assert_eq!(x.iter().next(), Some(&4)); let x: Option<u32> = None; assert_eq!(x.iter().next(), None);
pub fn iter_mut(&mut self) -> IterMut<T>
1.0.0[src]
Returns a mutable iterator over the possibly contained value.
Examples
let mut x = Some(4); match x.iter_mut().next() { Some(v) => *v = 42, None => {}, } assert_eq!(x, Some(42)); let mut x: Option<u32> = None; assert_eq!(x.iter_mut().next(), None);
pub fn get_or_insert(&mut self, v: T) -> &mut T
1.20.0[src]
Inserts v
into the option if it is None
, then
returns a mutable reference to the contained value.
Examples
let mut x = None; { let y: &mut u32 = x.get_or_insert(5); assert_eq!(y, &5); *y = 7; } assert_eq!(x, Some(7));
pub fn get_or_insert_with<F>(&mut self, f: F) -> &mut T where
F: FnOnce() -> T,
1.20.0[src]
F: FnOnce() -> T,
Inserts a value computed from f
into the option if it is None
, then
returns a mutable reference to the contained value.
Examples
let mut x = None; { let y: &mut u32 = x.get_or_insert_with(|| 5); assert_eq!(y, &5); *y = 7; } assert_eq!(x, Some(7));
pub fn take(&mut self) -> Option<T>
1.0.0[src]
Takes the value out of the option, leaving a None
in its place.
Examples
let mut x = Some(2); let y = x.take(); assert_eq!(x, None); assert_eq!(y, Some(2)); let mut x: Option<u32> = None; let y = x.take(); assert_eq!(x, None); assert_eq!(y, None);
pub fn replace(&mut self, value: T) -> Option<T>
1.31.0[src]
Replaces the actual value in the option by the value given in parameter,
returning the old value if present,
leaving a Some
in its place without deinitializing either one.
Examples
let mut x = Some(2); let old = x.replace(5); assert_eq!(x, Some(5)); assert_eq!(old, Some(2)); let mut x = None; let old = x.replace(3); assert_eq!(x, Some(3)); assert_eq!(old, None);
pub fn as_deref(&self) -> Option<&<T as Deref>::Target>
1.40.0[src]
Converts from Option<T>
(or &Option<T>
) to Option<&T::Target>
.
Leaves the original Option in-place, creating a new one with a reference
to the original one, additionally coercing the contents via Deref
.
Examples
let x: Option<String> = Some("hey".to_owned()); assert_eq!(x.as_deref(), Some("hey")); let x: Option<String> = None; assert_eq!(x.as_deref(), None);
pub fn as_deref_mut(&mut self) -> Option<&mut <T as Deref>::Target>
1.40.0[src]
Converts from Option<T>
(or &mut Option<T>
) to Option<&mut T::Target>
.
Leaves the original Option
in-place, creating a new one containing a mutable reference to
the inner type's Deref::Target
type.
Examples
let mut x: Option<String> = Some("hey".to_owned()); assert_eq!(x.as_deref_mut().map(|x| { x.make_ascii_uppercase(); x }), Some("HEY".to_owned().as_mut_str()));
Trait Implementations
impl AsRef<Option<Backtrace>> for Backtwrap
[src]
impl AsMut<Option<Backtrace>> for Backtwrap
[src]
impl From<Backtrace> for Backtwrap
[src]
impl From<Option<Backtrace>> for Backtwrap
[src]
impl From<Backtwrap> for Option<Backtrace>
[src]
impl Clone for Backtwrap
[src]
impl Eq for Backtwrap
[src]
impl PartialEq<Backtwrap> for Backtwrap
[src]
impl Debug for Backtwrap
[src]
impl Deref for Backtwrap
[src]
type Target = Option<Backtrace>
The resulting type after dereferencing.
fn deref(&self) -> &Self::Target
[src]
impl DerefMut for Backtwrap
[src]
impl Hash for Backtwrap
[src]
fn hash<H: Hasher>(&self, state: &mut H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Borrow<Option<Backtrace>> for Backtwrap
[src]
impl BorrowMut<Option<Backtrace>> for Backtwrap
[src]
fn borrow_mut(&mut self) -> &mut Option<Backtrace>
[src]
Auto Trait Implementations
impl Send for Backtwrap
impl Sync for Backtwrap
impl Unpin for Backtwrap
impl UnwindSafe for Backtwrap
impl RefUnwindSafe for Backtwrap
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,