pub struct ErrorLog<T, E> { /* private fields */ }Expand description
A Object to store multiple error messages and display them at once
§Operations
x:ErrorLog, E:Error, T:ok value, U:any type
*x:ok()/ok_mut(): get (mutable)okvalue asOptionx += Result<U, E>: Shorthand forpush_result()x += E: Shorthand forpush_err()x *= Result <T, E>: Shorthand formerge_result()
Implementations§
Source§impl<T, E> ErrorLog<T, E>
impl<T, E> ErrorLog<T, E>
Sourcepub fn clear_delimiter(&mut self) -> &mut Self
pub fn clear_delimiter(&mut self) -> &mut Self
Reset delimiter to default value.
Sourcepub fn delimiter(&mut self, delimiter: impl Into<String>)
pub fn delimiter(&mut self, delimiter: impl Into<String>)
Set delimiter. Takes any value that can be converted to String.
Sourcepub fn display_mode(&mut self, mode: FormatMode) -> &mut Self
pub fn display_mode(&mut self, mode: FormatMode) -> &mut Self
Set how the errors should be formatted:
- Normal:
{}(Default) - Debug:
{:?} PrettyDebug:{:#?}
Sourcepub fn get_format_mode(&self) -> &FormatMode
pub fn get_format_mode(&self) -> &FormatMode
Get FormatMode
Sourcepub fn get_instant_display(&self) -> bool
pub fn get_instant_display(&self) -> bool
Get weightier the function display incoming entries instantly. Note: Entries wont get stored when true
Sourcepub fn instant_display(&mut self, val: bool) -> &mut Self
pub fn instant_display(&mut self, val: bool) -> &mut Self
Set weightier the function display incoming entries instantly. Note: Entries wont get stored when true
Sourcepub fn join_on_display(&mut self, join: bool) -> &mut Self
pub fn join_on_display(&mut self, join: bool) -> &mut Self
Set weightier to join Entries into one big String when displaying them.
Source§impl<T, E: Display + Debug> ErrorLog<T, E>
impl<T, E: Display + Debug> ErrorLog<T, E>
Sourcepub fn join_to_string(&self) -> Option<String>
pub fn join_to_string(&self) -> Option<String>
Get String of Combined Entries
Sourcepub fn display_mut(&mut self) -> Option<&mut T>
pub fn display_mut(&mut self) -> Option<&mut T>
Sourcepub fn display_ok(self) -> Option<T>
pub fn display_ok(self) -> Option<T>
Sourcepub fn display_ref(&self) -> Option<&T>
pub fn display_ref(&self) -> Option<&T>
Sourcepub fn display_take_unwrap(&mut self) -> T
pub fn display_take_unwrap(&mut self) -> T
Display Entries and get ok value, panicking if no value set.
Related: display_ok()
Sourcepub fn display_unwrap(self) -> T
pub fn display_unwrap(self) -> T
Displays Entries and get ok value, panicking if no value set.
Related: display_ok()
Sourcepub fn display_unwrap_or(self, or: T) -> T
pub fn display_unwrap_or(self, or: T) -> T
Display entries and get ok value, using given value if no value set
Its recommended to use display_unwrap_or_else() when the alternative value needs to be calculated
Sourcepub fn display_unwrap_or_default(self) -> Twhere
T: Default,
pub fn display_unwrap_or_default(self) -> Twhere
T: Default,
Display entries and get ok value, using default value if no value set
Sourcepub fn display_unwrap_or_else(self, run: impl FnOnce() -> T) -> T
pub fn display_unwrap_or_else(self, run: impl FnOnce() -> T) -> T
Display entries and get ok value, using value calculated from given closure
Related: display_unwrap_or()
Source§impl<T, E> ErrorLog<T, E>
impl<T, E> ErrorLog<T, E>
Sourcepub fn entries(&self) -> &Entries<E>
pub fn entries(&self) -> &Entries<E>
Get immutable reference to Vector of Entries
NOTE: Does not filter entries
Sourcepub fn entries_mut(&mut self) -> &mut Entries<E>
pub fn entries_mut(&mut self) -> &mut Entries<E>
Get mutable reference to Vector of Entries
NOTE: Does not filter entries lower than maximum LevelFilter
Sourcepub fn entries_owned(&mut self) -> Entries<E>
pub fn entries_owned(&mut self) -> Entries<E>
Get owned Entries, Removing them from Instance
Sourcepub fn messages_clone(&self) -> Entries<E>
pub fn messages_clone(&self) -> Entries<E>
Get cloned vector of messages. Filters out errors.
Sourcepub fn messages_owned(self) -> Entries<E>
pub fn messages_owned(self) -> Entries<E>
Get owned log messages as Entries, firing out all
Source§impl<T, E: Clone> ErrorLog<T, E>
impl<T, E: Clone> ErrorLog<T, E>
Sourcepub fn entries_cloned(&self) -> Entries<E>
pub fn entries_cloned(&self) -> Entries<E>
Clone Entries.
Filters messages lower than the max_level
Sourcepub fn errors_cloned(&self) -> Vec<E>
pub fn errors_cloned(&self) -> Vec<E>
Get cloned errors as vector. Filters out all Messages lower than the max_level.
Source§impl<T, E: Debug + Display> ErrorLog<T, E>
impl<T, E: Debug + Display> ErrorLog<T, E>
Sourcepub fn append_entries<U>(&mut self, other: &mut ErrorLog<U, E>) -> &mut Self
pub fn append_entries<U>(&mut self, other: &mut ErrorLog<U, E>) -> &mut Self
Appends errors from another instance
Sourcepub fn clear_entries(&mut self) -> &mut Self
pub fn clear_entries(&mut self) -> &mut Self
Removes all entries from Self.
Sourcepub fn map_error_log<U: Debug, F: Display>(
self,
fun: impl FnOnce(Self) -> ErrorLog<U, F>,
) -> ErrorLog<U, F>
pub fn map_error_log<U: Debug, F: Display>( self, fun: impl FnOnce(Self) -> ErrorLog<U, F>, ) -> ErrorLog<U, F>
Maps instance to change error and ok type
Sourcepub fn prepend_entries<U>(&mut self, other: &mut ErrorLog<U, E>) -> &mut Self
pub fn prepend_entries<U>(&mut self, other: &mut ErrorLog<U, E>) -> &mut Self
Appends Entries before the Entries of the current Vec
Source§impl<T, E: Debug + Display> ErrorLog<T, E>
impl<T, E: Debug + Display> ErrorLog<T, E>
Source§impl<T, E> ErrorLog<T, E>
impl<T, E> ErrorLog<T, E>
Sourcepub fn ok_discard(self) -> Option<T>
pub fn ok_discard(self) -> Option<T>
Get owned ok value, discarding all entries.
Related: display_ok()
Sourcepub fn display_fn(&self) -> fn(LevelFilter, i64, String)
pub fn display_fn(&self) -> fn(LevelFilter, i64, String)
Get display function
Sourcepub fn set_ok(&mut self, new: impl Into<T>) -> &mut Self
pub fn set_ok(&mut self, new: impl Into<T>) -> &mut Self
Set ok value. Takes any value that can be converted to String
Sourcepub fn set_display_fn(&mut self, fun: fn(LevelFilter, i64, String)) -> &mut Self
pub fn set_display_fn(&mut self, fun: fn(LevelFilter, i64, String)) -> &mut Self
Set print function
Source§impl<T> ErrorLog<T, Box<dyn DebugDisplay>>
impl<T> ErrorLog<T, Box<dyn DebugDisplay>>
Sourcepub fn merge_result_box<U: Into<T>, F: DebugDisplay + 'static>(
&mut self,
res: Result<U, F>,
) -> bool
pub fn merge_result_box<U: Into<T>, F: DebugDisplay + 'static>( &mut self, res: Result<U, F>, ) -> bool
If the Result is an Ok variant, store ok value.
If the Result is an Err variant, store the Error as Box
Sourcepub fn push_err_box(&mut self, err: impl DebugDisplay + 'static) -> &mut Self
pub fn push_err_box(&mut self, err: impl DebugDisplay + 'static) -> &mut Self
Puts error in a Box and stores it
Sourcepub fn push_result_box<U: Into<T>, F: DebugDisplay + 'static>(
&mut self,
res: Result<U, F>,
) -> Option<U>
pub fn push_result_box<U: Into<T>, F: DebugDisplay + 'static>( &mut self, res: Result<U, F>, ) -> Option<U>
Source§impl<T, E> ErrorLog<T, E>
impl<T, E> ErrorLog<T, E>
Sourcepub fn max_level(&mut self, level: LevelFilter) -> &mut Self
pub fn max_level(&mut self, level: LevelFilter) -> &mut Self
Sets max LevelFilter of displayed messages
Note: when LevelFilter::Off, all messages get ignored, but errors still show
Sourcepub fn max_level_debug(
&mut self,
release: LevelFilter,
debug: LevelFilter,
) -> &mut Self
pub fn max_level_debug( &mut self, release: LevelFilter, debug: LevelFilter, ) -> &mut Self
Sets different max LevelFilter of displayed messages depending on if this is an debug build or a release one.
Sourcepub fn get_max_level(&self) -> &LevelFilter
pub fn get_max_level(&self) -> &LevelFilter
Gets max LevelFilter. Any Message of Lower Priority will be ignored
Sourcepub fn push_message(
&mut self,
level: LevelFilter,
msg: impl Into<String>,
) -> &mut Self
pub fn push_message( &mut self, level: LevelFilter, msg: impl Into<String>, ) -> &mut Self
Source§impl<T, E> ErrorLog<T, E>
impl<T, E> ErrorLog<T, E>
Sourcepub fn display_fn_log(&mut self) -> &mut Self
pub fn display_fn_log(&mut self) -> &mut Self
Display entries using log macros
Sourcepub fn display_fn_println(&mut self) -> &mut Self
pub fn display_fn_println(&mut self) -> &mut Self
Display errors using println
Methods from Deref<Target = Option<T>>§
1.0.0 · Sourcepub fn as_ref(&self) -> Option<&T>
pub fn as_ref(&self) -> Option<&T>
Converts from &Option<T> to Option<&T>.
§Examples
Calculates the length of an Option<String> as an Option<usize>
without moving the String. 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:?}");1.0.0 · Sourcepub fn as_mut(&mut self) -> Option<&mut T>
pub fn as_mut(&mut self) -> Option<&mut T>
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));1.75.0 · Sourcepub fn as_slice(&self) -> &[T]
pub fn as_slice(&self) -> &[T]
Returns a slice of the contained value, if any. If this is None, an
empty slice is returned. This can be useful to have a single type of
iterator over an Option or slice.
Note: Should you have an Option<&T> and wish to get a slice of T,
you can unpack it via opt.map_or(&[], std::slice::from_ref).
§Examples
assert_eq!(
[Some(1234).as_slice(), None.as_slice()],
[&[1234][..], &[][..]],
);The inverse of this function is (discounting
borrowing) [_]::first:
for i in [Some(1234_u16), None] {
assert_eq!(i.as_ref(), i.as_slice().first());
}1.75.0 · Sourcepub fn as_mut_slice(&mut self) -> &mut [T]
pub fn as_mut_slice(&mut self) -> &mut [T]
Returns a mutable slice of the contained value, if any. If this is
None, an empty slice is returned. This can be useful to have a
single type of iterator over an Option or slice.
Note: Should you have an Option<&mut T> instead of a
&mut Option<T>, which this method takes, you can obtain a mutable
slice via opt.map_or(&mut [], std::slice::from_mut).
§Examples
assert_eq!(
[Some(1234).as_mut_slice(), None.as_mut_slice()],
[&mut [1234][..], &mut [][..]],
);The result is a mutable slice of zero or one items that points into
our original Option:
let mut x = Some(1234);
x.as_mut_slice()[0] += 1;
assert_eq!(x, Some(1235));The inverse of this method (discounting borrowing)
is [_]::first_mut:
assert_eq!(Some(123).as_mut_slice().first_mut(), Some(&mut 123))1.40.0 · Sourcepub fn as_deref(&self) -> Option<&<T as Deref>::Target>where
T: Deref,
pub fn as_deref(&self) -> Option<&<T as Deref>::Target>where
T: Deref,
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);1.40.0 · Sourcepub fn as_deref_mut(&mut self) -> Option<&mut <T as Deref>::Target>where
T: DerefMut,
pub fn as_deref_mut(&mut self) -> Option<&mut <T as Deref>::Target>where
T: DerefMut,
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()));1.0.0 · Sourcepub fn iter(&self) -> Iter<'_, T>
pub fn iter(&self) -> Iter<'_, T>
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);1.0.0 · Sourcepub fn iter_mut(&mut self) -> IterMut<'_, T>
pub fn iter_mut(&mut self) -> IterMut<'_, T>
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);1.53.0 · Sourcepub fn insert(&mut self, value: T) -> &mut T
pub fn insert(&mut self, value: T) -> &mut T
Inserts value into the option, then returns a mutable reference to it.
If the option already contains a value, the old value is dropped.
See also Option::get_or_insert, which doesn’t update the value if
the option already contains Some.
§Example
let mut opt = None;
let val = opt.insert(1);
assert_eq!(*val, 1);
assert_eq!(opt.unwrap(), 1);
let val = opt.insert(2);
assert_eq!(*val, 2);
*val = 3;
assert_eq!(opt.unwrap(), 3);1.20.0 · Sourcepub fn get_or_insert(&mut self, value: T) -> &mut T
pub fn get_or_insert(&mut self, value: T) -> &mut T
Inserts value into the option if it is None, then
returns a mutable reference to the contained value.
See also Option::insert, which updates the value even if
the option already contains Some.
§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));1.83.0 · Sourcepub fn get_or_insert_default(&mut self) -> &mut Twhere
T: Default,
pub fn get_or_insert_default(&mut self) -> &mut Twhere
T: Default,
1.20.0 · Sourcepub fn get_or_insert_with<F>(&mut self, f: F) -> &mut Twhere
F: FnOnce() -> T,
pub fn get_or_insert_with<F>(&mut self, f: F) -> &mut Twhere
F: FnOnce() -> T,
1.80.0 · Sourcepub fn take_if<P>(&mut self, predicate: P) -> Option<T>
pub fn take_if<P>(&mut self, predicate: P) -> Option<T>
Takes the value out of the option, but only if the predicate evaluates to
true on a mutable reference to the value.
In other words, replaces self with None if the predicate returns true.
This method operates similar to Option::take but conditional.
§Examples
let mut x = Some(42);
let prev = x.take_if(|v| if *v == 42 {
*v += 1;
false
} else {
false
});
assert_eq!(x, Some(43));
assert_eq!(prev, None);
let prev = x.take_if(|v| *v == 43);
assert_eq!(x, None);
assert_eq!(prev, Some(43));1.31.0 · Sourcepub fn replace(&mut self, value: T) -> Option<T>
pub fn replace(&mut self, value: T) -> Option<T>
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);Trait Implementations§
Source§impl<T, E: Debug + Display> AddAssign<E> for ErrorLog<T, E>
Available on crate feature helper-traits only.
impl<T, E: Debug + Display> AddAssign<E> for ErrorLog<T, E>
helper-traits only.Source§fn add_assign(&mut self, rhs: E)
fn add_assign(&mut self, rhs: E)
Make err_log += ERROR store error if Result if an Err.
Shorthand for push_err()
Source§impl<T, U, E: Debug + Display> AddAssign<Result<U, E>> for ErrorLog<T, E>
Available on crate feature helper-traits only.
impl<T, U, E: Debug + Display> AddAssign<Result<U, E>> for ErrorLog<T, E>
helper-traits only.Source§fn add_assign(&mut self, rhs: Result<U, E>)
fn add_assign(&mut self, rhs: Result<U, E>)
Make err_log += RESULT store error of Result if any.
Shorthand for push_result()
Source§impl<T, E> Deref for ErrorLog<T, E>
Available on crate feature helper-traits only.Get immutable ‘ok’ value as Option by dereferencing
impl<T, E> Deref for ErrorLog<T, E>
helper-traits only.Get immutable ‘ok’ value as Option by dereferencing
Source§impl<T, E> DerefMut for ErrorLog<T, E>
Available on crate feature helper-traits only.Get mutable ‘ok’ value as Option by dereferencing
impl<T, E> DerefMut for ErrorLog<T, E>
helper-traits only.Get mutable ‘ok’ value as Option by dereferencing
Source§impl<T, E> IntoIterator for ErrorLog<T, E>
impl<T, E> IntoIterator for ErrorLog<T, E>
Source§impl<T, U: Into<T>, E> MulAssign<Option<U>> for ErrorLog<T, E>
Available on crate feature helper-traits only.
impl<T, U: Into<T>, E> MulAssign<Option<U>> for ErrorLog<T, E>
helper-traits only.Source§fn mul_assign(&mut self, rhs: Option<U>)
fn mul_assign(&mut self, rhs: Option<U>)
*= operation. Read moreSource§impl<T, U: Into<T>, E: Debug + Display, F: Into<E>> MulAssign<Result<U, F>> for ErrorLog<T, E>
Available on crate feature helper-traits only.
impl<T, U: Into<T>, E: Debug + Display, F: Into<E>> MulAssign<Result<U, F>> for ErrorLog<T, E>
helper-traits only.Source§fn mul_assign(&mut self, rhs: Result<U, F>)
fn mul_assign(&mut self, rhs: Result<U, F>)
*= operation. Read moreSource§impl<T: Ord, E: Ord> Ord for ErrorLog<T, E>
impl<T: Ord, E: Ord> Ord for ErrorLog<T, E>
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl<T: PartialOrd, E: PartialOrd> PartialOrd for ErrorLog<T, E>
impl<T: PartialOrd, E: PartialOrd> PartialOrd for ErrorLog<T, E>
Source§impl<T, E> Termination for ErrorLog<T, E>
Available on crate feature std only.
impl<T, E> Termination for ErrorLog<T, E>
std only.