pub struct EagerVec<I, T>(/* private fields */);Expand description
Stored vector with eager computation methods for deriving values from other vectors.
Wraps a StoredVec and provides various computation methods (transform, arithmetic operations, moving averages, etc.) to eagerly compute and persist derived data. Results are stored on disk and incrementally updated when source data changes.
Implementations§
Source§impl<I, T> EagerVec<I, T>where
I: VecIndex,
T: Compressable,
impl<I, T> EagerVec<I, T>where
I: VecIndex,
T: Compressable,
pub fn forced_import_compressed( db: &Database, name: &str, version: Version, ) -> Result<Self>
pub fn forced_import_compressed_with(options: ImportOptions<'_>) -> Result<Self>
pub fn forced_import_raw( db: &Database, name: &str, version: Version, ) -> Result<Self>
pub fn forced_import_raw_with(options: ImportOptions<'_>) -> Result<Self>
pub fn forced_import( db: &Database, name: &str, version: Version, format: Format, ) -> Result<Self>
pub fn forced_import_with( options: ImportOptions<'_>, format: Format, ) -> Result<Self>
pub fn inner_version(&self) -> Version
pub fn compute_to<F>( &mut self, max_from: I, to: usize, version: Version, t: F, exit: &Exit, ) -> Result<()>
pub fn compute_range<A, F>( &mut self, max_from: I, other: &impl IterableVec<I, A>, t: F, exit: &Exit, ) -> Result<()>
pub fn compute_from_index<T2>( &mut self, max_from: I, other: &impl IterableVec<I, T2>, exit: &Exit, ) -> Result<()>
pub fn compute_transform<A, B, F>( &mut self, max_from: A, other: &impl IterableVec<A, B>, t: F, exit: &Exit, ) -> Result<()>
pub fn compute_transform2<A, B, C, F>( &mut self, max_from: A, other1: &impl IterableVec<A, B>, other2: &impl IterableVec<A, C>, t: F, exit: &Exit, ) -> Result<()>
pub fn compute_transform3<A, B, C, D, F>( &mut self, max_from: A, other1: &impl IterableVec<A, B>, other2: &impl IterableVec<A, C>, other3: &impl IterableVec<A, D>, t: F, exit: &Exit, ) -> Result<()>
pub fn compute_add(
&mut self,
max_from: I,
added: &impl IterableVec<I, T>,
adder: &impl IterableVec<I, T>,
exit: &Exit,
) -> Result<()>where
T: Add<Output = T>,
pub fn compute_subtract(
&mut self,
max_from: I,
subtracted: &impl IterableVec<I, T>,
subtracter: &impl IterableVec<I, T>,
exit: &Exit,
) -> Result<()>where
T: CheckedSub,
pub fn compute_multiply<T2, T3>( &mut self, max_from: I, multiplied: &impl IterableVec<I, T2>, multiplier: &impl IterableVec<I, T3>, exit: &Exit, ) -> Result<()>
pub fn compute_divide<T2, T3>( &mut self, max_from: I, divided: &impl IterableVec<I, T2>, divider: &impl IterableVec<I, T3>, exit: &Exit, ) -> Result<()>
pub fn compute_all_time_high<T2>( &mut self, max_from: I, source: &impl IterableVec<I, T2>, exit: &Exit, ) -> Result<()>
pub fn compute_all_time_low<T2>( &mut self, max_from: I, source: &impl IterableVec<I, T2>, exit: &Exit, ) -> Result<()>
pub fn compute_all_time_low_<T2>( &mut self, max_from: I, source: &impl IterableVec<I, T2>, exit: &Exit, exclude_default: bool, ) -> Result<()>
pub fn compute_percentage<T2, T3>( &mut self, max_from: I, divided: &impl IterableVec<I, T2>, divider: &impl IterableVec<I, T3>, exit: &Exit, ) -> Result<()>
pub fn compute_percentage_difference<T2, T3>( &mut self, max_from: I, divided: &impl IterableVec<I, T2>, divider: &impl IterableVec<I, T3>, exit: &Exit, ) -> Result<()>
pub fn compute_percentage_<T2, T3>( &mut self, max_from: I, divided: &impl IterableVec<I, T2>, divider: &impl IterableVec<I, T3>, exit: &Exit, as_difference: bool, ) -> Result<()>
pub fn compute_coarser( &mut self, max_from: T, other: &impl IterableVec<T, I>, exit: &Exit, ) -> Result<()>
pub fn compute_count_from_indexes<T2, T3>( &mut self, max_from: I, first_indexes: &impl IterableVec<I, T2>, other_to_else: &impl IterableVec<T2, T3>, exit: &Exit, ) -> Result<()>
pub fn compute_filtered_count_from_indexes<T2, T3, F>( &mut self, max_from: I, first_indexes: &impl IterableVec<I, T2>, other_to_else: &impl IterableVec<T2, T3>, filter: F, exit: &Exit, ) -> Result<()>
pub fn compute_is_first_ordered<A>( &mut self, max_from: I, self_to_other: &impl IterableVec<I, A>, other_to_self: &impl IterableVec<A, I>, exit: &Exit, ) -> Result<()>
pub fn compute_max<T2>( &mut self, max_from: I, source: &impl IterableVec<I, T2>, window: usize, exit: &Exit, ) -> Result<()>
pub fn compute_min<T2>( &mut self, max_from: I, source: &impl IterableVec<I, T2>, window: usize, exit: &Exit, ) -> Result<()>
pub fn compute_sum<T2>( &mut self, max_from: I, source: &impl IterableVec<I, T2>, window: usize, exit: &Exit, ) -> Result<()>
pub fn compute_sum_from_indexes<T2, T3>( &mut self, max_from: I, first_indexes: &impl IterableVec<I, T2>, indexes_count: &impl IterableVec<I, T3>, source: &impl IterableVec<T2, T>, exit: &Exit, ) -> Result<()>
pub fn compute_sum_of_others( &mut self, max_from: I, others: &[&impl IterableVec<I, T>], exit: &Exit, ) -> Result<()>
pub fn compute_min_of_others( &mut self, max_from: I, others: &[&impl IterableVec<I, T>], exit: &Exit, ) -> Result<()>
pub fn compute_max_of_others( &mut self, max_from: I, others: &[&impl IterableVec<I, T>], exit: &Exit, ) -> Result<()>
pub fn compute_sma<T2>( &mut self, max_from: I, source: &impl IterableVec<I, T2>, sma: usize, exit: &Exit, ) -> Result<()>
pub fn compute_sma_<T2>( &mut self, max_from: I, source: &impl IterableVec<I, T2>, sma: usize, exit: &Exit, min_i: Option<I>, ) -> Result<()>
pub fn compute_ema<T2>( &mut self, max_from: I, source: &impl CollectableVec<I, T2>, ema: usize, exit: &Exit, ) -> Result<()>
pub fn compute_ema_<T2>( &mut self, max_from: I, source: &impl CollectableVec<I, T2>, ema: usize, exit: &Exit, min_i: Option<I>, ) -> Result<()>
pub fn compute_previous_value<T2>( &mut self, max_from: I, source: &impl IterableVec<I, T2>, len: usize, exit: &Exit, ) -> Result<()>
pub fn compute_change( &mut self, max_from: I, source: &impl IterableVec<I, T>, len: usize, exit: &Exit, ) -> Result<()>
pub fn compute_percentage_change<T2>( &mut self, max_from: I, source: &impl IterableVec<I, T2>, len: usize, exit: &Exit, ) -> Result<()>
pub fn compute_cagr<T2>( &mut self, max_from: I, percentage_returns: &impl IterableVec<I, T2>, days: usize, exit: &Exit, ) -> Result<()>
pub fn compute_zscore<T2, T3, T4>( &mut self, max_from: I, source: &impl IterableVec<I, T2>, sma: &impl IterableVec<I, T3>, sd: &impl IterableVec<I, T4>, exit: &Exit, ) -> Result<()>
Trait Implementations§
Source§impl<I, T> AnyStoredVec for EagerVec<I, T>where
I: VecIndex,
T: Compressable,
impl<I, T> AnyStoredVec for EagerVec<I, T>where
I: VecIndex,
T: Compressable,
fn db_path(&self) -> PathBuf
fn region(&self) -> &Region
fn header(&self) -> &Header
fn mut_header(&mut self) -> &mut Header
Source§fn saved_stamped_changes(&self) -> u16
fn saved_stamped_changes(&self) -> u16
Number of stamped change files to keep for rollback support.
fn flush(&mut self) -> Result<()>
Source§fn stored_len(&self) -> usize
fn stored_len(&self) -> usize
The effective stored length (may differ from real_stored_len during truncation).
Source§fn real_stored_len(&self) -> usize
fn real_stored_len(&self) -> usize
The actual length stored on disk.
fn serialize_changes(&self) -> Result<Vec<u8>>
Source§fn safe_flush(&mut self, exit: &Exit) -> Result<()>
fn safe_flush(&mut self, exit: &Exit) -> Result<()>
Flushes while holding the exit lock to ensure consistency during shutdown.
fn update_stamp(&mut self, stamp: Stamp)
fn stamp(&self) -> Stamp
fn stamped_flush(&mut self, stamp: Stamp) -> Result<()>
Source§impl<I, T> AnyVec for EagerVec<I, T>where
I: VecIndex,
T: Compressable,
impl<I, T> AnyVec for EagerVec<I, T>where
I: VecIndex,
T: Compressable,
fn version(&self) -> Version
fn name(&self) -> &str
fn len(&self) -> usize
Source§fn index_type_to_string(&self) -> &'static str
fn index_type_to_string(&self) -> &'static str
Returns the string representation of the index type.
Source§fn value_type_to_size_of(&self) -> usize
fn value_type_to_size_of(&self) -> usize
Returns the size in bytes of the value type.
Source§fn region_names(&self) -> Vec<String>
fn region_names(&self) -> Vec<String>
Returns the list of region names used by this vector.
fn is_empty(&self) -> bool
Source§fn index_to_name(&self) -> String
fn index_to_name(&self) -> String
Returns the combined name of the vector.
Source§fn etag(&self, stamp: Stamp, to: Option<i64>) -> String
fn etag(&self, stamp: Stamp, to: Option<i64>) -> String
Generates an ETag for this vector based on stamp and optional end index.
Source§fn i64_to_usize(&self, i: i64) -> usize
fn i64_to_usize(&self, i: i64) -> usize
Converts an i64 index to usize, supporting negative indexing (Python-style).
Source§impl<I, T> GenericStoredVec<I, T> for EagerVec<I, T>where
I: VecIndex,
T: Compressable,
impl<I, T> GenericStoredVec<I, T> for EagerVec<I, T>where
I: VecIndex,
T: Compressable,
Source§fn mut_pushed(&mut self) -> &mut Vec<T>
fn mut_pushed(&mut self) -> &mut Vec<T>
Returns a mutable reference to the current pushed (uncommitted) values.
Source§fn mut_holes(&mut self) -> &mut BTreeSet<usize>
fn mut_holes(&mut self) -> &mut BTreeSet<usize>
Returns a mutable reference to the set of holes.
Source§fn updated(&self) -> &BTreeMap<usize, T>
fn updated(&self) -> &BTreeMap<usize, T>
Returns the map of updated (uncommitted modifications to stored) values.
Source§fn mut_updated(&mut self) -> &mut BTreeMap<usize, T>
fn mut_updated(&mut self) -> &mut BTreeMap<usize, T>
Returns a mutable reference to the map of updated values.
Source§fn truncate_if_needed(&mut self, index: I) -> Result<()>
fn truncate_if_needed(&mut self, index: I) -> Result<()>
Truncates the vector to the given index if the current length exceeds it.
const SIZE_OF_T: usize = _
Source§fn create_reader(&self) -> Reader<'_>
fn create_reader(&self) -> Reader<'_>
Creates a reader with lifetime tied to self.
Be careful with deadlocks - drop the reader before mutable ops.
Source§fn create_static_reader(&self) -> Reader<'static>
fn create_static_reader(&self) -> Reader<'static>
Creates a reader with ’static lifetime.
Be careful with deadlocks - drop the reader before mutable ops.
Source§fn read(&self, index: I, reader: &Reader<'_>) -> Result<T>
fn read(&self, index: I, reader: &Reader<'_>) -> Result<T>
Reads value at index using provided reader.
Source§fn read_once(&self, index: I) -> Result<T>
fn read_once(&self, index: I) -> Result<T>
Reads value at index, creating a temporary reader.
For multiple reads, prefer
read() with a reused reader.Source§fn read_at(&self, index: usize, reader: &Reader<'_>) -> Result<T>
fn read_at(&self, index: usize, reader: &Reader<'_>) -> Result<T>
Reads value at usize index using provided reader.
Source§fn read_at_once(&self, index: usize) -> Result<T>
fn read_at_once(&self, index: usize) -> Result<T>
Reads value at usize index, creating a temporary reader.
For multiple reads, prefer
read_at() with a reused reader.Source§fn read_unwrap(&self, index: I, reader: &Reader<'_>) -> T
fn read_unwrap(&self, index: I, reader: &Reader<'_>) -> T
Reads value at index using provided reader. Panics if read fails.
Source§fn read_unwrap_once(&self, index: I) -> T
fn read_unwrap_once(&self, index: I) -> T
Reads value at index, creating a temporary reader. Panics if read fails.
For multiple reads, prefer
read_unwrap() with a reused reader.Source§fn read_at_unwrap(&self, index: usize, reader: &Reader<'_>) -> T
fn read_at_unwrap(&self, index: usize, reader: &Reader<'_>) -> T
Reads value at usize index using provided reader. Panics if read fails.
Source§fn read_at_unwrap_once(&self, index: usize) -> T
fn read_at_unwrap_once(&self, index: usize) -> T
Reads value at usize index, creating a temporary reader. Panics if read fails.
For multiple reads, prefer
read_at_unwrap() with a reused reader.Source§fn get_or_read(&self, index: I, reader: &Reader<'_>) -> Result<Option<T>>
fn get_or_read(&self, index: I, reader: &Reader<'_>) -> Result<Option<T>>
Gets value from any layer (updated, pushed, or storage) using provided reader.
Returns None if index is in holes or beyond available data.
Source§fn get_or_read_once(&self, index: I) -> Result<Option<T>>
fn get_or_read_once(&self, index: I) -> Result<Option<T>>
Gets value from any layer, creating a temporary reader if needed.
For multiple reads, prefer
get_or_read() with a reused reader.Source§fn get_or_read_at(&self, index: usize, reader: &Reader<'_>) -> Result<Option<T>>
fn get_or_read_at(&self, index: usize, reader: &Reader<'_>) -> Result<Option<T>>
Gets value from any layer at usize index using provided reader.
Returns None if index is in holes or beyond available data.
Source§fn get_or_read_at_once(&self, index: usize) -> Result<Option<T>>
fn get_or_read_at_once(&self, index: usize) -> Result<Option<T>>
Gets value from any layer at usize index, creating a temporary reader.
For multiple reads, prefer
get_or_read_at() with a reused reader.Source§fn get_or_read_unwrap(&self, index: I, reader: &Reader<'_>) -> T
fn get_or_read_unwrap(&self, index: I, reader: &Reader<'_>) -> T
Gets value from any layer using provided reader. Panics on error.
Source§fn get_or_read_unwrap_once(&self, index: I) -> T
fn get_or_read_unwrap_once(&self, index: I) -> T
Gets value from any layer, creating a temporary reader. Panics on error.
Source§fn get_or_read_at_unwrap(&self, index: usize, reader: &Reader<'_>) -> T
fn get_or_read_at_unwrap(&self, index: usize, reader: &Reader<'_>) -> T
Gets value from any layer at usize index using provided reader. Panics on error.
Source§fn get_or_read_at_unwrap_once(&self, index: usize) -> T
fn get_or_read_at_unwrap_once(&self, index: usize) -> T
Gets value from any layer at usize index, creating a temporary reader. Panics on error.
For multiple reads, prefer
get_or_read_at_unwrap() with a reused reader.Source§fn get_pushed_or_read(&self, index: I, reader: &Reader<'_>) -> Result<Option<T>>
fn get_pushed_or_read(&self, index: I, reader: &Reader<'_>) -> Result<Option<T>>
Gets value from pushed layer or storage using provided reader.
Does not check the updated layer.
Source§fn get_pushed_or_read_once(&self, index: I) -> Result<Option<T>>
fn get_pushed_or_read_once(&self, index: I) -> Result<Option<T>>
Gets value from pushed layer or storage, creating a temporary reader.
For multiple reads, prefer
get_pushed_or_read() with a reused reader.Source§fn get_pushed_or_read_at(
&self,
index: usize,
reader: &Reader<'_>,
) -> Result<Option<T>>
fn get_pushed_or_read_at( &self, index: usize, reader: &Reader<'_>, ) -> Result<Option<T>>
Gets value from pushed layer or storage at usize index using provided reader.
Does not check the updated layer.
Source§fn get_pushed_or_read_at_once(&self, index: usize) -> Result<Option<T>>
fn get_pushed_or_read_at_once(&self, index: usize) -> Result<Option<T>>
Gets value from pushed layer or storage at usize index, creating a temporary reader.
For multiple reads, prefer
get_pushed_or_read_at() with a reused reader.Source§fn get_pushed_at(&self, index: usize, stored_len: usize) -> Option<&T>
fn get_pushed_at(&self, index: usize, stored_len: usize) -> Option<&T>
Gets value from pushed layer only (no disk reads).
Source§fn len_(&self) -> usize
fn len_(&self) -> usize
Returns the length including both stored and pushed (uncommitted) values.
Named
len_ to avoid conflict with AnyVec::len.Source§fn pushed_len(&self) -> usize
fn pushed_len(&self) -> usize
Returns the number of pushed (uncommitted) values.
Source§fn is_pushed_empty(&self) -> bool
fn is_pushed_empty(&self) -> bool
Returns true if there are no pushed (uncommitted) values.
Source§fn push_if_needed(&mut self, index: I, value: T) -> Result<()>
fn push_if_needed(&mut self, index: I, value: T) -> Result<()>
Pushes a value if the index equals the current length, otherwise does nothing if already exists.
Returns an error if the index is too high.
Source§fn forced_push(&mut self, index: I, value: T, exit: &Exit) -> Result<()>
fn forced_push(&mut self, index: I, value: T, exit: &Exit) -> Result<()>
Pushes a value at the given index, truncating if necessary, and flushes if cache is full.
Source§fn forced_push_at(&mut self, index: usize, value: T, exit: &Exit) -> Result<()>
fn forced_push_at(&mut self, index: usize, value: T, exit: &Exit) -> Result<()>
Pushes a value at the given usize index, truncating if necessary, and flushes if cache is full.
Source§fn update_at(&mut self, index: usize, value: T) -> Result<()>
fn update_at(&mut self, index: usize, value: T) -> Result<()>
Updates the value at the given usize index.
Source§fn update_or_push(&mut self, index: I, value: T) -> Result<()>
fn update_or_push(&mut self, index: I, value: T) -> Result<()>
Updates the value at the given index if it exists, or pushes it if the index equals length.
Source§fn get_first_empty_index(&self) -> I
fn get_first_empty_index(&self) -> I
Returns the first empty index (either the first hole or the length).
Source§fn fill_first_hole_or_push(&mut self, value: T) -> Result<I>
fn fill_first_hole_or_push(&mut self, value: T) -> Result<I>
Fills the first hole with the value, or pushes if there are no holes. Returns the index used.
Source§fn take(&mut self, index: I, reader: &Reader<'_>) -> Result<Option<T>>
fn take(&mut self, index: I, reader: &Reader<'_>) -> Result<Option<T>>
Takes (removes and returns) the value at the given index using provided reader.
Source§fn take_at(&mut self, index: usize, reader: &Reader<'_>) -> Result<Option<T>>
fn take_at(&mut self, index: usize, reader: &Reader<'_>) -> Result<Option<T>>
Takes (removes and returns) the value at the given usize index using provided reader.
Source§fn delete_at(&mut self, index: usize)
fn delete_at(&mut self, index: usize)
Deletes the value at the given usize index (marks it as a hole).
Source§fn truncate_if_needed_at(&mut self, index: usize) -> Result<()>
fn truncate_if_needed_at(&mut self, index: usize) -> Result<()>
Truncates the vector to the given usize index if the current length exceeds it.
Source§fn truncate_if_needed_with_stamp(
&mut self,
index: I,
stamp: Stamp,
) -> Result<()>
fn truncate_if_needed_with_stamp( &mut self, index: I, stamp: Stamp, ) -> Result<()>
Truncates the vector to the given index if needed, updating the stamp.
Source§fn reset_unsaved(&mut self)
fn reset_unsaved(&mut self)
Resets uncommitted changes (pushed, holes, and updated layers).
Source§fn validate_computed_version_or_reset(&mut self, version: Version) -> Result<()>
fn validate_computed_version_or_reset(&mut self, version: Version) -> Result<()>
Validates the computed version against the stored version, resetting if they don’t match.
Source§fn collect_holed(&self) -> Result<Vec<Option<T>>>
fn collect_holed(&self) -> Result<Vec<Option<T>>>
Collects all values into a Vec, with None for holes.
Source§fn collect_holed_range(
&self,
from: Option<usize>,
to: Option<usize>,
) -> Result<Vec<Option<T>>>
fn collect_holed_range( &self, from: Option<usize>, to: Option<usize>, ) -> Result<Vec<Option<T>>>
Collects values in the given range into a Vec, with None for holes.
Source§fn is_dirty(&mut self) -> bool
fn is_dirty(&mut self) -> bool
Returns true if there are uncommitted changes (pushed or updated values).
Source§fn changes_path(&self) -> PathBuf
fn changes_path(&self) -> PathBuf
Returns the path to the changes directory for this vector.
Source§fn stamped_flush_maybe_with_changes(
&mut self,
stamp: Stamp,
with_changes: bool,
) -> Result<()>
fn stamped_flush_maybe_with_changes( &mut self, stamp: Stamp, with_changes: bool, ) -> Result<()>
Flushes with the given stamp, optionally saving changes for rollback.
Source§fn stamped_flush_with_changes(&mut self, stamp: Stamp) -> Result<()>
fn stamped_flush_with_changes(&mut self, stamp: Stamp) -> Result<()>
Flushes with the given stamp, saving changes to enable rollback.
Source§fn rollback_before(&mut self, stamp: Stamp) -> Result<Stamp>
fn rollback_before(&mut self, stamp: Stamp) -> Result<Stamp>
Rolls back changes to before the given stamp.
Source§fn deserialize_then_undo_changes(&mut self, bytes: &[u8]) -> Result<()>
fn deserialize_then_undo_changes(&mut self, bytes: &[u8]) -> Result<()>
Deserializes change data and undoes those changes.
Source§fn vec_region_name(&self) -> String
fn vec_region_name(&self) -> String
Returns the region name for this vector.
Source§fn vec_region_name_with(name: &str) -> String
fn vec_region_name_with(name: &str) -> String
Returns the region name for the given vector name.
MUST BE in sync with AnyVec::index_to_name
Source§fn holes_region_name(&self) -> String
fn holes_region_name(&self) -> String
Returns the region name for the holes of this vector.
Source§fn holes_region_name_with(name: &str) -> String
fn holes_region_name_with(name: &str) -> String
Returns the region name for the holes of the given vector name.
Source§impl<'a, I, T> IntoIterator for &'a EagerVec<I, T>where
I: VecIndex,
T: Compressable,
impl<'a, I, T> IntoIterator for &'a EagerVec<I, T>where
I: VecIndex,
T: Compressable,
Source§impl<I, T> IterableVec<I, T> for EagerVec<I, T>where
I: VecIndex,
T: Compressable,
impl<I, T> IterableVec<I, T> for EagerVec<I, T>where
I: VecIndex,
T: Compressable,
Auto Trait Implementations§
impl<I, T> Freeze for EagerVec<I, T>
impl<I, T> !RefUnwindSafe for EagerVec<I, T>
impl<I, T> Send for EagerVec<I, T>
impl<I, T> Sync for EagerVec<I, T>
impl<I, T> Unpin for EagerVec<I, T>
impl<I, T> !UnwindSafe for EagerVec<I, T>
Blanket Implementations§
Source§impl<V> AnyCollectableVec for V
impl<V> AnyCollectableVec for V
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<I, T, V> CollectableVec<I, T> for V
impl<I, T, V> CollectableVec<I, T> for V
Source§fn iter_range(
&self,
from: Option<usize>,
to: Option<usize>,
) -> impl Iterator<Item = T>
fn iter_range( &self, from: Option<usize>, to: Option<usize>, ) -> impl Iterator<Item = T>
Returns an iterator over the specified range.
Source§fn iter_signed_range(
&self,
from: Option<i64>,
to: Option<i64>,
) -> impl Iterator<Item = T>
fn iter_signed_range( &self, from: Option<i64>, to: Option<i64>, ) -> impl Iterator<Item = T>
Returns an iterator over the specified range using signed indices (supports negative indexing).
Source§fn collect_range(&self, from: Option<usize>, to: Option<usize>) -> Vec<T>
fn collect_range(&self, from: Option<usize>, to: Option<usize>) -> Vec<T>
Collects values in the specified range into a Vec.
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more