pub struct TimeSeries { /* private fields */ }Expand description
An iterator of a sequence of evenly spaced Epochs.
(Python documentation hints) :type start: Epoch :type end: Epoch :type step: Duration :type inclusive: bool
Implementations§
§impl TimeSeries
impl TimeSeries
pub fn exclusive(start: Epoch, end: Epoch, step: Duration) -> TimeSeries ⓘ
pub fn exclusive(start: Epoch, end: Epoch, step: Duration) -> TimeSeries ⓘ
Return an iterator of evenly spaced Epochs, inclusive on start and exclusive on end.
use hifitime::{Epoch, Unit, TimeSeries};
let start = Epoch::from_gregorian_utc_at_midnight(2017, 1, 14);
let end = Epoch::from_gregorian_utc_at_noon(2017, 1, 14);
let step = Unit::Hour * 2;
let time_series = TimeSeries::exclusive(start, end, step);
let mut cnt = 0;
for epoch in time_series {
println!("{}", epoch);
cnt += 1
}
assert_eq!(cnt, 6)pub fn first_epoch(&self) -> Epoch
pub fn first_epoch(&self) -> Epoch
Returns first Epoch of this TimeSeries, without consuming the iterator.
pub fn last_epoch(&self) -> Epoch
pub fn last_epoch(&self) -> Epoch
Returns last Epoch of this TimeSeries, without consuming the iterator.
pub fn inclusive(start: Epoch, end: Epoch, step: Duration) -> TimeSeries ⓘ
pub fn inclusive(start: Epoch, end: Epoch, step: Duration) -> TimeSeries ⓘ
Return an iterator of evenly spaced Epochs, inclusive on start and on end.
use hifitime::{Epoch, Unit, TimeSeries};
let start = Epoch::from_gregorian_utc_at_midnight(2017, 1, 14);
let end = Epoch::from_gregorian_utc_at_noon(2017, 1, 14);
let step = Unit::Hour * 2;
let time_series = TimeSeries::inclusive(start, end, step);
let mut cnt = 0;
for epoch in time_series {
println!("{}", epoch);
cnt += 1
}
assert_eq!(cnt, 7)Examples found in repository?
nyx-core/examples/04_lro_od/main.rs (line 331)
35fn main() -> Result<(), Box<dyn Error>> {
36 pel::init();
37
38 // ====================== //
39 // === ALMANAC SET UP === //
40 // ====================== //
41
42 // Dynamics models require planetary constants and ephemerides to be defined.
43 // Let's start by grabbing those by using ANISE's MetaAlmanac.
44
45 let output_folder: PathBuf = [env!("CARGO_MANIFEST_DIR"), "../data", "04_output"]
46 .iter()
47 .collect();
48
49 let data_folder: PathBuf = [env!("CARGO_MANIFEST_DIR"), "examples", "04_lro_od"]
50 .iter()
51 .collect();
52
53 let meta = data_folder.join("lro-dynamics.dhall");
54
55 // Load this ephem in the general Almanac we're using for this analysis.
56 let mut almanac = MetaAlmanac::new(meta.to_string_lossy().as_ref())
57 .map_err(Box::new)?
58 .process(true)
59 .map_err(Box::new)?;
60
61 let mut moon_pc = almanac.get_planetary_data_from_id(MOON).unwrap();
62 moon_pc.mu_km3_s2 = 4902.74987;
63 almanac.set_planetary_data_from_id(MOON, moon_pc).unwrap();
64
65 let mut earth = almanac.get_planetary_data_from_id(EARTH).unwrap();
66 earth.mu_km3_s2 = 398600.436;
67 almanac.set_planetary_data_from_id(EARTH, earth).unwrap();
68
69 // Save this new kernel for reuse.
70 // In an operational context, this would be part of the "Lock" process, and should not change throughout the mission.
71 almanac
72 .planetary_data
73 .values()
74 .next()
75 .unwrap()
76 .save_as(&data_folder.join("lro-specific.pca"), true)?;
77
78 // Lock the almanac (an Arc is a read only structure).
79 let almanac = Arc::new(almanac);
80
81 // Orbit determination requires a Trajectory structure, which can be saved as parquet file.
82 // In our case, the trajectory comes from the BSP file, so we need to build a Trajectory from the almanac directly.
83 // To query the Almanac, we need to build the LRO frame in the J2000 orientation in our case.
84 // Inspecting the LRO BSP in the ANISE GUI shows us that NASA has assigned ID -85 to LRO.
85 let lro_frame = Frame::from_ephem_j2000(-85);
86
87 // To build the trajectory we need to provide a spacecraft template.
88 let sc_template = Spacecraft::builder()
89 .mass(Mass::from_dry_and_prop_masses(1018.0, 900.0)) // Launch masses
90 .srp(SRPData {
91 // SRP configuration is arbitrary, but we will be estimating it anyway.
92 area_m2: 3.9 * 2.7,
93 coeff_reflectivity: 0.96,
94 })
95 .orbit(Orbit::zero(MOON_J2000)) // Setting a zero orbit here because it's just a template
96 .build();
97 // Now we can build the trajectory from the BSP file.
98 // We'll arbitrarily set the tracking arc to 24 hours with a five second time step.
99 let traj_as_flown = Traj::from_bsp(
100 lro_frame,
101 MOON_J2000,
102 &almanac,
103 sc_template,
104 5.seconds(),
105 Some(Epoch::from_str("2024-01-01 00:00:00 UTC")?),
106 Some(Epoch::from_str("2024-01-02 00:00:00 UTC")?),
107 Aberration::LT,
108 Some("LRO".to_string()),
109 )?;
110
111 println!("{traj_as_flown}");
112
113 // ====================== //
114 // === MODEL MATCHING === //
115 // ====================== //
116
117 // Set up the spacecraft dynamics.
118
119 // Specify that the orbital dynamics must account for the graviational pull of the Earth and the Sun.
120 // The gravity of the Moon will also be accounted for since the spaceraft in a lunar orbit.
121 let mut orbital_dyn = OrbitalDynamics::point_masses(vec![EARTH, SUN, JUPITER_BARYCENTER]);
122
123 // We want to include the spherical harmonics, so let's download the gravitational data from the Nyx Cloud.
124 // We're using the GRAIL JGGRX model.
125 let mut jggrx_meta = MetaFile {
126 uri: "http://public-data.nyxspace.com/nyx/models/Luna_jggrx_1500e_sha.tab.gz".to_string(),
127 crc32: Some(0x6bcacda8), // Specifying the CRC32 avoids redownloading it if it's cached.
128 };
129 // And let's download it if we don't have it yet.
130 jggrx_meta.process(true)?;
131
132 // Build the spherical harmonics.
133 // The harmonics must be computed in the body fixed frame.
134 // We're using the long term prediction of the Moon principal axes frame.
135 let moon_pa_frame = MOON_PA_FRAME.with_orient(31008);
136 let sph_harmonics = GravityField::new(GravityFieldData::from_shadr(
137 &jggrx_meta.uri,
138 80,
139 80,
140 almanac.frame_info(moon_pa_frame)?,
141 )?);
142
143 // Include the spherical harmonics into the orbital dynamics.
144 orbital_dyn.accel_models.push(sph_harmonics);
145
146 // We define the solar radiation pressure, using the default solar flux and accounting only
147 // for the eclipsing caused by the Earth and Moon.
148 // Note that by default, enabling the SolarPressure model will also enable the estimation of the coefficient of reflectivity.
149 let srp_dyn = SolarPressure::new(vec![EARTH_J2000, MOON_J2000], &almanac)?;
150
151 // Finalize setting up the dynamics, specifying the force models (orbital_dyn) separately from the
152 // acceleration models (SRP in this case). Use `from_models` to specify multiple accel models.
153 let dynamics = SpacecraftDynamics::from_model(orbital_dyn, srp_dyn);
154
155 println!("{dynamics}");
156
157 // Now we can build the propagator.
158 let setup = Propagator::default_dp78(dynamics.clone());
159
160 // For reference, let's build the trajectory with Nyx's models from that LRO state.
161 let (sim_final, traj_as_sim) = setup
162 .with(*traj_as_flown.first(), almanac.clone())
163 .until_epoch_with_traj(traj_as_flown.last().epoch())?;
164
165 println!("SIM INIT: {:x}", traj_as_flown.first());
166 println!("SIM FINAL: {sim_final:x}");
167 // Compute RIC difference between SIM and LRO ephem
168 let sim_lro_delta = sim_final
169 .orbit
170 .ric_difference(&traj_as_flown.last().orbit)?;
171 println!("{traj_as_sim}");
172 println!(
173 "SIM v LRO - RIC Position (m): {:.3}",
174 sim_lro_delta.radius_km * 1e3
175 );
176 println!(
177 "SIM v LRO - RIC Velocity (m/s): {:.3}",
178 sim_lro_delta.velocity_km_s * 1e3
179 );
180
181 traj_as_sim.ric_diff_to_parquet(
182 &traj_as_flown,
183 output_folder.join("./04_lro_sim_truth_error.parquet"),
184 ExportCfg::default(),
185 )?;
186
187 // ==================== //
188 // === OD SIMULATOR === //
189 // ==================== //
190
191 // After quite some time trying to exactly match the model, we still end up with an oscillatory difference on the order of 150 meters between the propagated state
192 // and the truth LRO state.
193
194 // Therefore, we will actually run an estimation from a dispersed LRO state.
195 // The sc_seed is the true LRO state from the BSP.
196 let sc_seed = *traj_as_flown.first();
197
198 // Load the Deep Space Network ground stations.
199 // Nyx allows you to build these at runtime but it's pretty static so we can just load them from YAML.
200 let ground_station_file: PathBuf = [
201 env!("CARGO_MANIFEST_DIR"),
202 "examples",
203 "04_lro_od",
204 "dsn-network.yaml",
205 ]
206 .iter()
207 .collect();
208
209 let devices = GroundStation::load_named(ground_station_file)?;
210
211 let mut proc_devices = devices.clone();
212
213 // Increase the noise in the devices to accept more measurements.
214 for gs in proc_devices.values_mut() {
215 if let Some(noise) = &mut gs
216 .stochastic_noises
217 .as_mut()
218 .unwrap()
219 .get_mut(&MeasurementType::Range)
220 {
221 *noise.white_noise.as_mut().unwrap() *= 3.0;
222 }
223 }
224
225 // Typical OD software requires that you specify your own tracking schedule or you'll have overlapping measurements.
226 // Nyx can build a tracking schedule for you based on the first station with access.
227 let trkconfg_yaml: PathBuf = [
228 env!("CARGO_MANIFEST_DIR"),
229 "examples",
230 "04_lro_od",
231 "tracking-cfg.yaml",
232 ]
233 .iter()
234 .collect();
235
236 let configs: BTreeMap<String, TrkConfig> = TrkConfig::load_named(trkconfg_yaml)?;
237
238 // Build the tracking arc simulation to generate a "standard measurement".
239 let mut trk = TrackingArcSim::<Spacecraft, GroundStation>::with_seed(
240 devices.clone(),
241 traj_as_flown.clone(),
242 configs,
243 123, // Set a seed for reproducibility
244 )?;
245
246 trk.build_schedule(&almanac)?;
247 let arc = trk.generate_measurements(&almanac)?;
248 // Save the simulated tracking data
249 arc.to_parquet_simple(output_folder.join("04_lro_simulated_tracking.parquet"))?;
250
251 // We'll note that in our case, we have continuous coverage of LRO when the vehicle is not behind the Moon.
252 println!("{arc}");
253
254 // Now that we have simulated measurements, we'll run the orbit determination.
255
256 // ===================== //
257 // === OD ESTIMATION === //
258 // ===================== //
259
260 let sc = SpacecraftUncertainty::builder()
261 .nominal(sc_seed)
262 .frame(LocalFrame::RIC)
263 .x_km(0.5)
264 .y_km(0.5)
265 .z_km(0.5)
266 .vx_km_s(5e-3)
267 .vy_km_s(5e-3)
268 .vz_km_s(5e-3)
269 .build();
270
271 // Build the filter initial estimate, which we will reuse in the filter.
272 let mut initial_estimate = sc.to_estimate()?;
273 initial_estimate.covar *= 3.0;
274
275 println!("== FILTER STATE ==\n{sc_seed:x}\n{initial_estimate}");
276
277 // Build the SNC in the Moon J2000 frame, specified as a velocity noise over time.
278 let process_noise = ProcessNoise3D::from_velocity_km_s(
279 &[1e-12, 1e-12, 1e-12],
280 1 * Unit::Hour,
281 10 * Unit::Minute,
282 None,
283 );
284
285 println!("{process_noise}");
286
287 // We'll set up the OD process to reject measurements whose residuals are move than 3 sigmas away from what we expect.
288 let odp = SpacecraftKalmanOD::new(
289 setup,
290 KalmanVariant::ReferenceUpdate,
291 Some(SigmaRejection::default()),
292 proc_devices,
293 almanac.clone(),
294 )
295 .with_process_noise(process_noise);
296
297 let od_sol = odp.process_arc(initial_estimate, &arc)?;
298
299 let final_est = od_sol.estimates.last().unwrap();
300
301 println!("{final_est}");
302
303 let ric_err = traj_as_flown
304 .at(final_est.epoch())?
305 .orbit
306 .ric_difference(&final_est.orbital_state())?;
307 println!("== RIC at end ==");
308 println!("RIC Position (m): {:.3}", ric_err.radius_km * 1e3);
309 println!("RIC Velocity (m/s): {:.3}", ric_err.velocity_km_s * 1e3);
310
311 println!(
312 "Num residuals rejected: #{}",
313 od_sol.rejected_residuals().len()
314 );
315 println!(
316 "Percentage within +/-3: {}",
317 od_sol.residual_ratio_within_threshold(3.0).unwrap()
318 );
319 println!("Ratios normal? {}", od_sol.is_normal(None).unwrap());
320
321 od_sol.to_parquet(
322 output_folder.join("04_lro_od_results.parquet"),
323 ExportCfg::default(),
324 )?;
325
326 // Create the ephemeris
327 let ephem = od_sol.to_ephemeris("LRO rebuilt".to_string());
328 let ephem_start = ephem.start_epoch().unwrap();
329 let ephem_end = ephem.end_epoch().unwrap();
330 // Check that the covariance is PSD throughout the ephemeris by interpolating it.
331 for epoch in TimeSeries::inclusive(ephem_start, ephem_end, Unit::Minute * 5) {
332 ephem
333 .covar_at(
334 epoch,
335 anise::ephemerides::ephemeris::LocalFrame::RIC,
336 &almanac,
337 )
338 .unwrap_or_else(|e| panic!("covar not PSD at {epoch}: {e}"));
339 }
340 // Export as BSP!
341 ephem
342 .write_spice_bsp(
343 -85,
344 output_folder.join("04_lro_rebuilt.bsp").to_str().unwrap(),
345 None,
346 )
347 .expect("could not built BSP");
348 let new_almanac = Almanac::default()
349 .load(output_folder.join("04_lro_rebuilt.bsp").to_str().unwrap())
350 .unwrap();
351 new_almanac.describe(None, None, None, None, None, None, None, None);
352 let (spk_start, spk_end) = new_almanac.spk_domain(-85).unwrap();
353
354 assert!((ephem_start - spk_start).abs() < Unit::Microsecond * 1);
355 assert!((ephem_end - spk_end).abs() < Unit::Microsecond * 1);
356
357 // In our case, we have the truth trajectory from NASA.
358 // So we can compute the RIC state difference between the real LRO ephem and what we've just estimated.
359 // Export the OD trajectory first.
360 let od_trajectory = od_sol.to_traj()?;
361 // Build the RIC difference.
362 od_trajectory.ric_diff_to_parquet(
363 &traj_as_flown,
364 output_folder.join("04_lro_od_truth_error.parquet"),
365 ExportCfg::default(),
366 )?;
367
368 Ok(())
369}Trait Implementations§
§impl Clone for TimeSeries
impl Clone for TimeSeries
§fn clone(&self) -> TimeSeries ⓘ
fn clone(&self) -> TimeSeries ⓘ
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more§impl Debug for TimeSeries
impl Debug for TimeSeries
impl DerefToPyAny for TimeSeries
§impl Display for TimeSeries
impl Display for TimeSeries
§impl DoubleEndedIterator for TimeSeries
impl DoubleEndedIterator for TimeSeries
§fn next_back(&mut self) -> Option<Epoch>
fn next_back(&mut self) -> Option<Epoch>
Removes and returns an element from the end of the iterator. Read more
Source§fn next_chunk_back<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk_back<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
🔬This is a nightly-only experimental API. (
iter_next_chunk)Advances from the back of the iterator and returns an array containing the next
N values in sequence. Read moreSource§fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
🔬This is a nightly-only experimental API. (
iter_advance_by)Advances the iterator from the back by
n elements. Read more1.37.0 (const: unstable) · Source§fn nth_back(&mut self, n: usize) -> Option<Self::Item>
fn nth_back(&mut self, n: usize) -> Option<Self::Item>
Returns the
nth element from the end of the iterator. Read more1.27.0 (const: unstable) · Source§fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
This is the reverse version of
Iterator::try_fold(): it takes
elements starting from the back of the iterator. Read moreimpl Eq for TimeSeries
§impl ExactSizeIterator for TimeSerieswhere
TimeSeries: Iterator,
impl ExactSizeIterator for TimeSerieswhere
TimeSeries: Iterator,
§impl<'py> IntoPyObject<'py> for TimeSeries
impl<'py> IntoPyObject<'py> for TimeSeries
§type Target = TimeSeries
type Target = TimeSeries
The Python output type
§type Output = Bound<'py, <TimeSeries as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <TimeSeries as IntoPyObject<'py>>::Target>
The smart pointer type to use. Read more
§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<TimeSeries as IntoPyObject<'py>>::Output, <TimeSeries as IntoPyObject<'py>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<TimeSeries as IntoPyObject<'py>>::Output, <TimeSeries as IntoPyObject<'py>>::Error>
Performs the conversion.
§impl Iterator for TimeSeries
impl Iterator for TimeSeries
§fn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
Returns the bounds on the remaining length of the iterator. Read more
Source§fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
🔬This is a nightly-only experimental API. (
iter_next_chunk)Advances the iterator and returns an array containing the next
N values. Read more1.0.0 (const: unstable) · Source§fn count(self) -> usizewhere
Self: Sized,
fn count(self) -> usizewhere
Self: Sized,
Consumes the iterator, counting the number of iterations and returning it. Read more
1.0.0 (const: unstable) · Source§fn last(self) -> Option<Self::Item>where
Self: Sized,
fn last(self) -> Option<Self::Item>where
Self: Sized,
Consumes the iterator, returning the last element. Read more
Source§fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
🔬This is a nightly-only experimental API. (
iter_advance_by)Advances the iterator by
n elements. Read more1.0.0 (const: unstable) · Source§fn nth(&mut self, n: usize) -> Option<Self::Item>
fn nth(&mut self, n: usize) -> Option<Self::Item>
Returns the
nth element of the iterator. Read more1.28.0 (const: unstable) · Source§fn step_by(self, step: usize) -> StepBy<Self> ⓘwhere
Self: Sized,
fn step_by(self, step: usize) -> StepBy<Self> ⓘwhere
Self: Sized,
Creates an iterator starting at the same point, but stepping by
the given amount at each iteration. Read more
1.0.0 (const: unstable) · Source§fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> ⓘ
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> ⓘ
Takes two iterators and creates a new iterator over both in sequence. Read more
1.0.0 (const: unstable) · Source§fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> ⓘwhere
Self: Sized,
U: IntoIterator,
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> ⓘwhere
Self: Sized,
U: IntoIterator,
‘Zips up’ two iterators into a single iterator of pairs. Read more
Source§fn intersperse(self, separator: Self::Item) -> Intersperse<Self> ⓘ
fn intersperse(self, separator: Self::Item) -> Intersperse<Self> ⓘ
🔬This is a nightly-only experimental API. (
iter_intersperse)Creates a new iterator which places a copy of
separator between items
of the original iterator. Read moreSource§fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> ⓘ
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> ⓘ
🔬This is a nightly-only experimental API. (
iter_intersperse)Creates a new iterator which places an item generated by
separator
between items of the original iterator. Read more1.0.0 (const: unstable) · Source§fn map<B, F>(self, f: F) -> Map<Self, F> ⓘ
fn map<B, F>(self, f: F) -> Map<Self, F> ⓘ
Takes a closure and creates an iterator which calls that closure on each
element. Read more
1.21.0 (const: unstable) · Source§fn for_each<F>(self, f: F)
fn for_each<F>(self, f: F)
Calls a closure on each element of an iterator. Read more
1.0.0 (const: unstable) · Source§fn filter<P>(self, predicate: P) -> Filter<Self, P> ⓘ
fn filter<P>(self, predicate: P) -> Filter<Self, P> ⓘ
Creates an iterator which uses a closure to determine if an element
should be yielded. Read more
1.0.0 (const: unstable) · Source§fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> ⓘ
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> ⓘ
Creates an iterator that both filters and maps. Read more
1.0.0 (const: unstable) · Source§fn enumerate(self) -> Enumerate<Self> ⓘwhere
Self: Sized,
fn enumerate(self) -> Enumerate<Self> ⓘwhere
Self: Sized,
Creates an iterator which gives the current iteration count as well as
the next value. Read more
1.0.0 (const: unstable) · Source§fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> ⓘ
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> ⓘ
Creates an iterator that yields elements based on a predicate. Read more
1.57.0 (const: unstable) · Source§fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> ⓘ
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> ⓘ
Creates an iterator that both yields elements based on a predicate and maps. Read more
1.0.0 (const: unstable) · Source§fn skip(self, n: usize) -> Skip<Self> ⓘwhere
Self: Sized,
fn skip(self, n: usize) -> Skip<Self> ⓘwhere
Self: Sized,
Creates an iterator that skips the first
n elements. Read more1.0.0 (const: unstable) · Source§fn take(self, n: usize) -> Take<Self> ⓘwhere
Self: Sized,
fn take(self, n: usize) -> Take<Self> ⓘwhere
Self: Sized,
Creates an iterator that yields the first
n elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0 (const: unstable) · Source§fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> ⓘ
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> ⓘ
1.0.0 (const: unstable) · Source§fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> ⓘ
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> ⓘ
Creates an iterator that works like map, but flattens nested structure. Read more
1.29.0 (const: unstable) · Source§fn flatten(self) -> Flatten<Self> ⓘ
fn flatten(self) -> Flatten<Self> ⓘ
Creates an iterator that flattens nested structure. Read more
Source§fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> ⓘ
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> ⓘ
🔬This is a nightly-only experimental API. (
iter_map_windows)Calls the given function
f for each contiguous window of size N over
self and returns an iterator over the outputs of f. Like slice::windows(),
the windows during mapping overlap as well. Read more1.0.0 (const: unstable) · Source§fn inspect<F>(self, f: F) -> Inspect<Self, F> ⓘ
fn inspect<F>(self, f: F) -> Inspect<Self, F> ⓘ
Does something with each element of an iterator, passing the value on. Read more
1.0.0 (const: unstable) · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adapter for this instance of
Iterator. Read more1.0.0 (const: unstable) · Source§fn collect<B>(self) -> B
fn collect<B>(self) -> B
Transforms an iterator into a collection. Read more
Source§fn try_collect<B>(
&mut self,
) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
fn try_collect<B>( &mut self, ) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
🔬This is a nightly-only experimental API. (
iterator_try_collect)Fallibly transforms an iterator into a collection, short circuiting if
a failure is encountered. Read more
Source§fn collect_into<E>(self, collection: &mut E) -> &mut E
fn collect_into<E>(self, collection: &mut E) -> &mut E
🔬This is a nightly-only experimental API. (
iter_collect_into)Collects all the items from an iterator into a collection. Read more
1.0.0 (const: unstable) · Source§fn partition<B, F>(self, f: F) -> (B, B)
fn partition<B, F>(self, f: F) -> (B, B)
Consumes an iterator, creating two collections from it. Read more
Source§fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
🔬This is a nightly-only experimental API. (
iter_partition_in_place)Reorders the elements of this iterator in-place according to the given predicate,
such that all those that return
true precede all those that return false.
Returns the number of true elements found. Read moreSource§fn is_partitioned<P>(self, predicate: P) -> bool
fn is_partitioned<P>(self, predicate: P) -> bool
🔬This is a nightly-only experimental API. (
iter_is_partitioned)Checks if the elements of this iterator are partitioned according to the given predicate,
such that all those that return
true precede all those that return false. Read more1.27.0 (const: unstable) · Source§fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
An iterator method that applies a function as long as it returns
successfully, producing a single, final value. Read more
1.27.0 (const: unstable) · Source§fn try_for_each<F, R>(&mut self, f: F) -> R
fn try_for_each<F, R>(&mut self, f: F) -> R
An iterator method that applies a fallible function to each item in the
iterator, stopping at the first error and returning that error. Read more
1.0.0 (const: unstable) · Source§fn fold<B, F>(self, init: B, f: F) -> B
fn fold<B, F>(self, init: B, f: F) -> B
Folds every element into an accumulator by applying an operation,
returning the final result. Read more
1.51.0 (const: unstable) · Source§fn reduce<F>(self, f: F) -> Option<Self::Item>
fn reduce<F>(self, f: F) -> Option<Self::Item>
Reduces the elements to a single one, by repeatedly applying a reducing
operation. Read more
Source§fn try_reduce<R>(
&mut self,
f: impl FnMut(Self::Item, Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
fn try_reduce<R>( &mut self, f: impl FnMut(Self::Item, Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
🔬This is a nightly-only experimental API. (
iterator_try_reduce)Reduces the elements to a single one by repeatedly applying a reducing operation. If the
closure returns a failure, the failure is propagated back to the caller immediately. Read more
1.0.0 (const: unstable) · Source§fn all<F>(&mut self, f: F) -> bool
fn all<F>(&mut self, f: F) -> bool
Tests if every element of the iterator matches a predicate. Read more
1.0.0 (const: unstable) · Source§fn any<F>(&mut self, f: F) -> bool
fn any<F>(&mut self, f: F) -> bool
Tests if any element of the iterator matches a predicate. Read more
1.0.0 (const: unstable) · Source§fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
Searches for an element of an iterator that satisfies a predicate. Read more
1.30.0 (const: unstable) · Source§fn find_map<B, F>(&mut self, f: F) -> Option<B>
fn find_map<B, F>(&mut self, f: F) -> Option<B>
Applies function to the elements of iterator and returns
the first non-none result. Read more
Source§fn try_find<R>(
&mut self,
f: impl FnMut(&Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
fn try_find<R>( &mut self, f: impl FnMut(&Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
🔬This is a nightly-only experimental API. (
try_find)Applies function to the elements of iterator and returns
the first true result or the first error. Read more
1.0.0 (const: unstable) · Source§fn position<P>(&mut self, predicate: P) -> Option<usize>
fn position<P>(&mut self, predicate: P) -> Option<usize>
Searches for an element in an iterator, returning its index. Read more
1.0.0 (const: unstable) · Source§fn rposition<P>(&mut self, predicate: P) -> Option<usize>
fn rposition<P>(&mut self, predicate: P) -> Option<usize>
Searches for an element in an iterator from the right, returning its
index. Read more
1.0.0 (const: unstable) · Source§fn max(self) -> Option<Self::Item>
fn max(self) -> Option<Self::Item>
Returns the maximum element of an iterator. Read more
1.0.0 (const: unstable) · Source§fn min(self) -> Option<Self::Item>
fn min(self) -> Option<Self::Item>
Returns the minimum element of an iterator. Read more
1.6.0 (const: unstable) · Source§fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
Returns the element that gives the maximum value from the
specified function. Read more
1.15.0 (const: unstable) · Source§fn max_by<F>(self, compare: F) -> Option<Self::Item>
fn max_by<F>(self, compare: F) -> Option<Self::Item>
Returns the element that gives the maximum value with respect to the
specified comparison function. Read more
1.6.0 (const: unstable) · Source§fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
Returns the element that gives the minimum value from the
specified function. Read more
1.15.0 (const: unstable) · Source§fn min_by<F>(self, compare: F) -> Option<Self::Item>
fn min_by<F>(self, compare: F) -> Option<Self::Item>
Returns the element that gives the minimum value with respect to the
specified comparison function. Read more
1.0.0 (const: unstable) · Source§fn rev(self) -> Rev<Self> ⓘwhere
Self: Sized + DoubleEndedIterator,
fn rev(self) -> Rev<Self> ⓘwhere
Self: Sized + DoubleEndedIterator,
Reverses an iterator’s direction. Read more
1.0.0 (const: unstable) · Source§fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
Converts an iterator of pairs into a pair of containers. Read more
1.36.0 (const: unstable) · Source§fn copied<'a, T>(self) -> Copied<Self> ⓘ
fn copied<'a, T>(self) -> Copied<Self> ⓘ
Creates an iterator which copies all of its elements. Read more
1.0.0 (const: unstable) · Source§fn cycle(self) -> Cycle<Self> ⓘ
fn cycle(self) -> Cycle<Self> ⓘ
Repeats an iterator endlessly. Read more
Source§fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N> ⓘwhere
Self: Sized,
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N> ⓘwhere
Self: Sized,
🔬This is a nightly-only experimental API. (
iter_array_chunks)Returns an iterator over
N elements of the iterator at a time. Read more1.11.0 (const: unstable) · Source§fn product<P>(self) -> P
fn product<P>(self) -> P
Iterates over the entire iterator, multiplying all the elements. Read more
Source§fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
🔬This is a nightly-only experimental API. (
iter_order_by)Lexicographically compares the elements of this
Iterator with those
of another with respect to the specified comparison function. Read more1.5.0 (const: unstable) · Source§fn partial_cmp<I>(self, other: I) -> Option<Ordering>
fn partial_cmp<I>(self, other: I) -> Option<Ordering>
Lexicographically compares the
PartialOrd elements of
this Iterator with those of another. The comparison works like short-circuit
evaluation, returning a result without comparing the remaining elements.
As soon as an order can be determined, the evaluation stops and a result is returned. Read moreSource§fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
🔬This is a nightly-only experimental API. (
iter_order_by)Lexicographically compares the elements of this
Iterator with those
of another with respect to the specified comparison function. Read moreSource§fn eq_by<I, F>(self, other: I, eq: F) -> bool
fn eq_by<I, F>(self, other: I, eq: F) -> bool
🔬This is a nightly-only experimental API. (
iter_order_by)1.5.0 (const: unstable) · Source§fn lt<I>(self, other: I) -> bool
fn lt<I>(self, other: I) -> bool
Determines if the elements of this
Iterator are lexicographically
less than those of another. Read more1.5.0 (const: unstable) · Source§fn le<I>(self, other: I) -> bool
fn le<I>(self, other: I) -> bool
Determines if the elements of this
Iterator are lexicographically
less or equal to those of another. Read more1.5.0 (const: unstable) · Source§fn gt<I>(self, other: I) -> bool
fn gt<I>(self, other: I) -> bool
Determines if the elements of this
Iterator are lexicographically
greater than those of another. Read more1.5.0 (const: unstable) · Source§fn ge<I>(self, other: I) -> bool
fn ge<I>(self, other: I) -> bool
Determines if the elements of this
Iterator are lexicographically
greater than or equal to those of another. Read more1.82.0 (const: unstable) · Source§fn is_sorted(self) -> bool
fn is_sorted(self) -> bool
Checks if the elements of this iterator are sorted. Read more
1.82.0 (const: unstable) · Source§fn is_sorted_by<F>(self, compare: F) -> bool
fn is_sorted_by<F>(self, compare: F) -> bool
Checks if the elements of this iterator are sorted using the given comparator function. Read more
§impl LowerExp for TimeSeries
impl LowerExp for TimeSeries
§impl LowerHex for TimeSeries
impl LowerHex for TimeSeries
§impl Octal for TimeSeries
impl Octal for TimeSeries
§impl PartialEq for TimeSeries
impl PartialEq for TimeSeries
§impl Pointer for TimeSeries
impl Pointer for TimeSeries
§impl PyClass for TimeSeries
impl PyClass for TimeSeries
§impl PyTypeInfo for TimeSeries
impl PyTypeInfo for TimeSeries
§const NAME: &'static str = <Self as ::pyo3::PyClass>::NAME
const NAME: &'static str = <Self as ::pyo3::PyClass>::NAME
👎Deprecated since 0.28.0:
prefer using ::type_object(py).name() to get the correct runtime value
Class name.
§const MODULE: Option<&'static str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
const MODULE: Option<&'static str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
👎Deprecated since 0.28.0:
prefer using ::type_object(py).module() to get the correct runtime value
Module name, if any.
§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
Returns the PyTypeObject instance for this type.
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
Returns the safe abstraction over the type object.
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
Checks if
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
Checks if
object is an instance of this type.impl StructuralPartialEq for TimeSeries
§impl UpperExp for TimeSeries
impl UpperExp for TimeSeries
Auto Trait Implementations§
impl Freeze for TimeSeries
impl RefUnwindSafe for TimeSeries
impl Send for TimeSeries
impl Sync for TimeSeries
impl Unpin for TimeSeries
impl UnsafeUnpin for TimeSeries
impl UnwindSafe for TimeSeries
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.impl<'py, T> FromPyObjectOwned<'py> for Twhere
T: for<'a> FromPyObject<'a, 'py>,
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 moreSource§impl<I> IntoIterator for Iwhere
I: Iterator,
impl<I> IntoIterator for Iwhere
I: Iterator,
§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
Converts
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
Converts
self into an owned Python object, dropping type information and unbinding it
from the 'py lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
Converts
self into a Python object. Read more§impl<I> IteratorRandom for Iwhere
I: Iterator,
impl<I> IteratorRandom for Iwhere
I: Iterator,
§fn choose<R>(self, rng: &mut R) -> Option<Self::Item>where
R: Rng + ?Sized,
fn choose<R>(self, rng: &mut R) -> Option<Self::Item>where
R: Rng + ?Sized,
Uniformly sample one element Read more
§fn choose_stable<R>(self, rng: &mut R) -> Option<Self::Item>where
R: Rng + ?Sized,
fn choose_stable<R>(self, rng: &mut R) -> Option<Self::Item>where
R: Rng + ?Sized,
Uniformly sample one element (stable) Read more
§fn sample_fill<R>(self, rng: &mut R, buf: &mut [Self::Item]) -> usizewhere
R: Rng + ?Sized,
fn sample_fill<R>(self, rng: &mut R, buf: &mut [Self::Item]) -> usizewhere
R: Rng + ?Sized,
Uniformly sample
amount distinct elements into a buffer Read moreSource§impl<T> Itertools for T
impl<T> Itertools for T
Source§fn interleave<J>(
self,
other: J,
) -> Interleave<Self, <J as IntoIterator>::IntoIter> ⓘ
fn interleave<J>( self, other: J, ) -> Interleave<Self, <J as IntoIterator>::IntoIter> ⓘ
Alternate elements from two iterators until both have run out. Read more
Source§fn interleave_shortest<J>(
self,
other: J,
) -> InterleaveShortest<Self, <J as IntoIterator>::IntoIter> ⓘ
fn interleave_shortest<J>( self, other: J, ) -> InterleaveShortest<Self, <J as IntoIterator>::IntoIter> ⓘ
Alternate elements from two iterators until at least one of them has run
out. Read more
Source§fn intersperse(
self,
element: Self::Item,
) -> IntersperseWith<Self, IntersperseElementSimple<Self::Item>> ⓘ
fn intersperse( self, element: Self::Item, ) -> IntersperseWith<Self, IntersperseElementSimple<Self::Item>> ⓘ
An iterator adaptor to insert a particular value
between each element of the adapted iterator. Read more
Source§fn intersperse_with<F>(self, element: F) -> IntersperseWith<Self, F> ⓘ
fn intersperse_with<F>(self, element: F) -> IntersperseWith<Self, F> ⓘ
An iterator adaptor to insert a particular value created by a function
between each element of the adapted iterator. Read more
Source§fn zip_longest<J>(
self,
other: J,
) -> ZipLongest<Self, <J as IntoIterator>::IntoIter> ⓘwhere
J: IntoIterator,
Self: Sized,
fn zip_longest<J>(
self,
other: J,
) -> ZipLongest<Self, <J as IntoIterator>::IntoIter> ⓘwhere
J: IntoIterator,
Self: Sized,
Create an iterator which iterates over both this and the specified
iterator simultaneously, yielding pairs of two optional elements. Read more
Source§fn zip_eq<J>(self, other: J) -> ZipEq<Self, <J as IntoIterator>::IntoIter> ⓘwhere
J: IntoIterator,
Self: Sized,
fn zip_eq<J>(self, other: J) -> ZipEq<Self, <J as IntoIterator>::IntoIter> ⓘwhere
J: IntoIterator,
Self: Sized,
Create an iterator which iterates over both this and the specified
iterator simultaneously, yielding pairs of elements. Read more
Source§fn batching<B, F>(self, f: F) -> Batching<Self, F> ⓘ
fn batching<B, F>(self, f: F) -> Batching<Self, F> ⓘ
A “meta iterator adaptor”. Its closure receives a reference to the
iterator and may pick off as many elements as it likes, to produce the
next iterator element. Read more
Source§fn group_by<K, F>(self, key: F) -> GroupBy<K, Self, F>
fn group_by<K, F>(self, key: F) -> GroupBy<K, Self, F>
Return an iterable that can group iterator elements.
Consecutive elements that map to the same key (“runs”), are assigned
to the same group. Read more
Source§fn chunks(self, size: usize) -> IntoChunks<Self>where
Self: Sized,
fn chunks(self, size: usize) -> IntoChunks<Self>where
Self: Sized,
Return an iterable that can chunk the iterator. Read more
Source§fn tuple_windows<T>(self) -> TupleWindows<Self, T> ⓘwhere
Self: Sized + Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple,
<T as TupleCollect>::Item: Clone,
fn tuple_windows<T>(self) -> TupleWindows<Self, T> ⓘwhere
Self: Sized + Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple,
<T as TupleCollect>::Item: Clone,
Return an iterator over all contiguous windows producing tuples of
a specific size (up to 12). Read more
Source§fn circular_tuple_windows<T>(self) -> CircularTupleWindows<Self, T> ⓘ
fn circular_tuple_windows<T>(self) -> CircularTupleWindows<Self, T> ⓘ
Return an iterator over all windows, wrapping back to the first
elements when the window would otherwise exceed the length of the
iterator, producing tuples of a specific size (up to 12). Read more
Source§fn tuples<T>(self) -> Tuples<Self, T> ⓘ
fn tuples<T>(self) -> Tuples<Self, T> ⓘ
Return an iterator that groups the items in tuples of a specific size
(up to 12). Read more
Source§fn tee(self) -> (Tee<Self>, Tee<Self>)
fn tee(self) -> (Tee<Self>, Tee<Self>)
Split into an iterator pair that both yield all elements from
the original iterator. Read more
Source§fn step(self, n: usize) -> Step<Self> ⓘwhere
Self: Sized,
fn step(self, n: usize) -> Step<Self> ⓘwhere
Self: Sized,
👎Deprecated since 0.8.0:
Use std .step_by() instead
Return an iterator adaptor that steps
n elements in the base iterator
for each iteration. Read moreSource§fn map_results<F, T, U, E>(
self,
f: F,
) -> MapSpecialCase<Self, MapSpecialCaseFnOk<F>>
fn map_results<F, T, U, E>( self, f: F, ) -> MapSpecialCase<Self, MapSpecialCaseFnOk<F>>
👎Deprecated since 0.10.0:
Use .map_ok() instead
See
.map_ok().Source§fn map_ok<F, T, U, E>(self, f: F) -> MapSpecialCase<Self, MapSpecialCaseFnOk<F>>
fn map_ok<F, T, U, E>(self, f: F) -> MapSpecialCase<Self, MapSpecialCaseFnOk<F>>
Return an iterator adaptor that applies the provided closure
to every
Result::Ok value. Result::Err values are
unchanged. Read moreSource§fn filter_ok<F, T, E>(self, f: F) -> FilterOk<Self, F> ⓘ
fn filter_ok<F, T, E>(self, f: F) -> FilterOk<Self, F> ⓘ
Return an iterator adaptor that filters every
Result::Ok
value with the provided closure. Result::Err values are
unchanged. Read moreSource§fn filter_map_ok<F, T, U, E>(self, f: F) -> FilterMapOk<Self, F> ⓘ
fn filter_map_ok<F, T, U, E>(self, f: F) -> FilterMapOk<Self, F> ⓘ
Return an iterator adaptor that filters and transforms every
Result::Ok value with the provided closure. Result::Err
values are unchanged. Read moreSource§fn flatten_ok<T, E>(self) -> FlattenOk<Self, T, E> ⓘ
fn flatten_ok<T, E>(self) -> FlattenOk<Self, T, E> ⓘ
Return an iterator adaptor that flattens every
Result::Ok value into
a series of Result::Ok values. Result::Err values are unchanged. Read moreSource§fn merge<J>(
self,
other: J,
) -> MergeBy<Self, <J as IntoIterator>::IntoIter, MergeLte> ⓘ
fn merge<J>( self, other: J, ) -> MergeBy<Self, <J as IntoIterator>::IntoIter, MergeLte> ⓘ
Return an iterator adaptor that merges the two base iterators in
ascending order. If both base iterators are sorted (ascending), the
result is sorted. Read more
Source§fn merge_by<J, F>(
self,
other: J,
is_first: F,
) -> MergeBy<Self, <J as IntoIterator>::IntoIter, F> ⓘ
fn merge_by<J, F>( self, other: J, is_first: F, ) -> MergeBy<Self, <J as IntoIterator>::IntoIter, F> ⓘ
Source§fn merge_join_by<J, F>(
self,
other: J,
cmp_fn: F,
) -> MergeJoinBy<Self, <J as IntoIterator>::IntoIter, F> ⓘ
fn merge_join_by<J, F>( self, other: J, cmp_fn: F, ) -> MergeJoinBy<Self, <J as IntoIterator>::IntoIter, F> ⓘ
Create an iterator that merges items from both this and the specified
iterator in ascending order. Read more
Source§fn kmerge(self) -> KMergeBy<<Self::Item as IntoIterator>::IntoIter, KMergeByLt> ⓘ
fn kmerge(self) -> KMergeBy<<Self::Item as IntoIterator>::IntoIter, KMergeByLt> ⓘ
Return an iterator adaptor that flattens an iterator of iterators by
merging them in ascending order. Read more
Source§fn kmerge_by<F>(
self,
first: F,
) -> KMergeBy<<Self::Item as IntoIterator>::IntoIter, F> ⓘwhere
Self: Sized,
Self::Item: IntoIterator,
F: FnMut(&<Self::Item as IntoIterator>::Item, &<Self::Item as IntoIterator>::Item) -> bool,
fn kmerge_by<F>(
self,
first: F,
) -> KMergeBy<<Self::Item as IntoIterator>::IntoIter, F> ⓘwhere
Self: Sized,
Self::Item: IntoIterator,
F: FnMut(&<Self::Item as IntoIterator>::Item, &<Self::Item as IntoIterator>::Item) -> bool,
Return an iterator adaptor that flattens an iterator of iterators by
merging them according to the given closure. Read more
Source§fn cartesian_product<J>(
self,
other: J,
) -> Product<Self, <J as IntoIterator>::IntoIter> ⓘ
fn cartesian_product<J>( self, other: J, ) -> Product<Self, <J as IntoIterator>::IntoIter> ⓘ
Return an iterator adaptor that iterates over the cartesian product of
the element sets of two iterators
self and J. Read moreSource§fn multi_cartesian_product(
self,
) -> MultiProduct<<Self::Item as IntoIterator>::IntoIter> ⓘwhere
Self: Sized,
Self::Item: IntoIterator,
<Self::Item as IntoIterator>::IntoIter: Clone,
<Self::Item as IntoIterator>::Item: Clone,
fn multi_cartesian_product(
self,
) -> MultiProduct<<Self::Item as IntoIterator>::IntoIter> ⓘwhere
Self: Sized,
Self::Item: IntoIterator,
<Self::Item as IntoIterator>::IntoIter: Clone,
<Self::Item as IntoIterator>::Item: Clone,
Return an iterator adaptor that iterates over the cartesian product of
all subiterators returned by meta-iterator
self. Read moreSource§fn coalesce<F>(self, f: F) -> CoalesceBy<Self, F, Self::Item>
fn coalesce<F>(self, f: F) -> CoalesceBy<Self, F, Self::Item>
Return an iterator adaptor that uses the passed-in closure to
optionally merge together consecutive elements. Read more
Source§fn dedup(self) -> CoalesceBy<Self, DedupPred2CoalescePred<DedupEq>, Self::Item>
fn dedup(self) -> CoalesceBy<Self, DedupPred2CoalescePred<DedupEq>, Self::Item>
Remove duplicates from sections of consecutive identical elements.
If the iterator is sorted, all elements will be unique. Read more
Source§fn dedup_by<Cmp>(
self,
cmp: Cmp,
) -> CoalesceBy<Self, DedupPred2CoalescePred<Cmp>, Self::Item>
fn dedup_by<Cmp>( self, cmp: Cmp, ) -> CoalesceBy<Self, DedupPred2CoalescePred<Cmp>, Self::Item>
Remove duplicates from sections of consecutive identical elements,
determining equality using a comparison function.
If the iterator is sorted, all elements will be unique. Read more
Source§fn dedup_with_count(
self,
) -> CoalesceBy<Self, DedupPredWithCount2CoalescePred<DedupEq>, (usize, Self::Item)>where
Self: Sized,
fn dedup_with_count(
self,
) -> CoalesceBy<Self, DedupPredWithCount2CoalescePred<DedupEq>, (usize, Self::Item)>where
Self: Sized,
Remove duplicates from sections of consecutive identical elements, while keeping a count of
how many repeated elements were present.
If the iterator is sorted, all elements will be unique. Read more
Source§fn dedup_by_with_count<Cmp>(
self,
cmp: Cmp,
) -> CoalesceBy<Self, DedupPredWithCount2CoalescePred<Cmp>, (usize, Self::Item)>
fn dedup_by_with_count<Cmp>( self, cmp: Cmp, ) -> CoalesceBy<Self, DedupPredWithCount2CoalescePred<Cmp>, (usize, Self::Item)>
Remove duplicates from sections of consecutive identical elements, while keeping a count of
how many repeated elements were present.
This will determine equality using a comparison function.
If the iterator is sorted, all elements will be unique. Read more
Source§fn duplicates(self) -> DuplicatesBy<Self, Self::Item, ById>
fn duplicates(self) -> DuplicatesBy<Self, Self::Item, ById>
Return an iterator adaptor that produces elements that appear more than once during the
iteration. Duplicates are detected using hash and equality. Read more
Source§fn duplicates_by<V, F>(self, f: F) -> DuplicatesBy<Self, V, ByFn<F>>
fn duplicates_by<V, F>(self, f: F) -> DuplicatesBy<Self, V, ByFn<F>>
Return an iterator adaptor that produces elements that appear more than once during the
iteration. Duplicates are detected using hash and equality. Read more
Source§fn unique(self) -> Unique<Self> ⓘ
fn unique(self) -> Unique<Self> ⓘ
Return an iterator adaptor that filters out elements that have
already been produced once during the iteration. Duplicates
are detected using hash and equality. Read more
Source§fn unique_by<V, F>(self, f: F) -> UniqueBy<Self, V, F> ⓘ
fn unique_by<V, F>(self, f: F) -> UniqueBy<Self, V, F> ⓘ
Return an iterator adaptor that filters out elements that have
already been produced once during the iteration. Read more
Source§fn peeking_take_while<F>(&mut self, accept: F) -> PeekingTakeWhile<'_, Self, F> ⓘ
fn peeking_take_while<F>(&mut self, accept: F) -> PeekingTakeWhile<'_, Self, F> ⓘ
Return an iterator adaptor that borrows from this iterator and
takes items while the closure
accept returns true. Read moreSource§fn take_while_ref<F>(&mut self, accept: F) -> TakeWhileRef<'_, Self, F> ⓘ
fn take_while_ref<F>(&mut self, accept: F) -> TakeWhileRef<'_, Self, F> ⓘ
Return an iterator adaptor that borrows from a
Clone-able iterator
to only pick off elements while the predicate accept returns true. Read moreSource§fn while_some<A>(self) -> WhileSome<Self> ⓘ
fn while_some<A>(self) -> WhileSome<Self> ⓘ
Return an iterator adaptor that filters
Option<A> iterator elements
and produces A. Stops on the first None encountered. Read moreSource§fn tuple_combinations<T>(self) -> TupleCombinations<Self, T> ⓘ
fn tuple_combinations<T>(self) -> TupleCombinations<Self, T> ⓘ
Return an iterator adaptor that iterates over the combinations of the
elements from an iterator. Read more
Source§fn combinations(self, k: usize) -> Combinations<Self> ⓘ
fn combinations(self, k: usize) -> Combinations<Self> ⓘ
Return an iterator adaptor that iterates over the
k-length combinations of
the elements from an iterator. Read moreSource§fn combinations_with_replacement(
self,
k: usize,
) -> CombinationsWithReplacement<Self> ⓘ
fn combinations_with_replacement( self, k: usize, ) -> CombinationsWithReplacement<Self> ⓘ
Return an iterator that iterates over the
k-length combinations of
the elements from an iterator, with replacement. Read moreSource§fn permutations(self, k: usize) -> Permutations<Self> ⓘ
fn permutations(self, k: usize) -> Permutations<Self> ⓘ
Return an iterator adaptor that iterates over all k-permutations of the
elements from an iterator. Read more
Source§fn powerset(self) -> Powerset<Self> ⓘ
fn powerset(self) -> Powerset<Self> ⓘ
Return an iterator that iterates through the powerset of the elements from an
iterator. Read more
Source§fn pad_using<F>(self, min: usize, f: F) -> PadUsing<Self, F> ⓘ
fn pad_using<F>(self, min: usize, f: F) -> PadUsing<Self, F> ⓘ
Return an iterator adaptor that pads the sequence to a minimum length of
min by filling missing elements using a closure f. Read moreSource§fn with_position(self) -> WithPosition<Self> ⓘwhere
Self: Sized,
fn with_position(self) -> WithPosition<Self> ⓘwhere
Self: Sized,
Return an iterator adaptor that wraps each element in a
Position to
ease special-case handling of the first or last elements. Read moreSource§fn positions<P>(self, predicate: P) -> Positions<Self, P> ⓘ
fn positions<P>(self, predicate: P) -> Positions<Self, P> ⓘ
Return an iterator adaptor that yields the indices of all elements
satisfying a predicate, counted from the start of the iterator. Read more
Source§fn update<F>(self, updater: F) -> Update<Self, F> ⓘ
fn update<F>(self, updater: F) -> Update<Self, F> ⓘ
Return an iterator adaptor that applies a mutating function
to each element before yielding it. Read more
Source§fn next_tuple<T>(&mut self) -> Option<T>
fn next_tuple<T>(&mut self) -> Option<T>
Advances the iterator and returns the next items grouped in a tuple of
a specific size (up to 12). Read more
Source§fn collect_tuple<T>(self) -> Option<T>
fn collect_tuple<T>(self) -> Option<T>
Collects all items from the iterator into a tuple of a specific size
(up to 12). Read more
Source§fn find_position<P>(&mut self, pred: P) -> Option<(usize, Self::Item)>
fn find_position<P>(&mut self, pred: P) -> Option<(usize, Self::Item)>
Find the position and value of the first element satisfying a predicate. Read more
Source§fn find_or_last<P>(self, predicate: P) -> Option<Self::Item>
fn find_or_last<P>(self, predicate: P) -> Option<Self::Item>
Find the value of the first element satisfying a predicate or return the last element, if any. Read more
Source§fn find_or_first<P>(self, predicate: P) -> Option<Self::Item>
fn find_or_first<P>(self, predicate: P) -> Option<Self::Item>
Find the value of the first element satisfying a predicate or return the first element, if any. Read more
Source§fn contains<Q>(&mut self, query: &Q) -> bool
fn contains<Q>(&mut self, query: &Q) -> bool
Returns
true if the given item is present in this iterator. Read moreSource§fn all_unique(&mut self) -> bool
fn all_unique(&mut self) -> bool
Check whether all elements are unique (non equal). Read more
Source§fn dropping(self, n: usize) -> Selfwhere
Self: Sized,
fn dropping(self, n: usize) -> Selfwhere
Self: Sized,
Consume the first
n elements from the iterator eagerly,
and return the same iterator again. Read moreSource§fn dropping_back(self, n: usize) -> Selfwhere
Self: Sized + DoubleEndedIterator,
fn dropping_back(self, n: usize) -> Selfwhere
Self: Sized + DoubleEndedIterator,
Consume the last
n elements from the iterator eagerly,
and return the same iterator again. Read moreSource§fn foreach<F>(self, f: F)
fn foreach<F>(self, f: F)
👎Deprecated since 0.8.0:
Use .for_each() instead
Run the closure
f eagerly on each element of the iterator. Read moreSource§fn collect_vec(self) -> Vec<Self::Item>where
Self: Sized,
fn collect_vec(self) -> Vec<Self::Item>where
Self: Sized,
.collect_vec() is simply a type specialization of Iterator::collect,
for convenience.Source§fn try_collect<T, U, E>(self) -> Result<U, E>
fn try_collect<T, U, E>(self) -> Result<U, E>
Source§fn set_from<'a, A, J>(&mut self, from: J) -> usize
fn set_from<'a, A, J>(&mut self, from: J) -> usize
Assign to each reference in
self from the from iterator,
stopping at the shortest of the two iterators. Read moreSource§fn join(&mut self, sep: &str) -> String
fn join(&mut self, sep: &str) -> String
Combine all iterator elements into one String, separated by
sep. Read moreSource§fn format(self, sep: &str) -> Format<'_, Self>where
Self: Sized,
fn format(self, sep: &str) -> Format<'_, Self>where
Self: Sized,
Format all iterator elements, separated by
sep. Read moreSource§fn format_with<F>(self, sep: &str, format: F) -> FormatWith<'_, Self, F>
fn format_with<F>(self, sep: &str, format: F) -> FormatWith<'_, Self, F>
Format all iterator elements, separated by
sep. Read moreSource§fn fold_results<A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E>
fn fold_results<A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E>
👎Deprecated since 0.10.0:
Use .fold_ok() instead
See
.fold_ok().Source§fn fold_ok<A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E>
fn fold_ok<A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E>
Fold
Result values from an iterator. Read moreSource§fn fold_options<A, B, F>(&mut self, start: B, f: F) -> Option<B>
fn fold_options<A, B, F>(&mut self, start: B, f: F) -> Option<B>
Fold
Option values from an iterator. Read moreSource§fn fold1<F>(self, f: F) -> Option<Self::Item>
fn fold1<F>(self, f: F) -> Option<Self::Item>
👎Deprecated since 0.10.2:
Use Iterator::reduce instead
Accumulator of the elements in the iterator. Read more
Source§fn tree_fold1<F>(self, f: F) -> Option<Self::Item>
fn tree_fold1<F>(self, f: F) -> Option<Self::Item>
Accumulate the elements in the iterator in a tree-like manner. Read more
Source§fn fold_while<B, F>(&mut self, init: B, f: F) -> FoldWhile<B>
fn fold_while<B, F>(&mut self, init: B, f: F) -> FoldWhile<B>
An iterator method that applies a function, producing a single, final value. Read more
Source§fn sum1<S>(self) -> Option<S>
fn sum1<S>(self) -> Option<S>
Iterate over the entire iterator and add all the elements. Read more
Source§fn product1<P>(self) -> Option<P>
fn product1<P>(self) -> Option<P>
Iterate over the entire iterator and multiply all the elements. Read more
Source§fn sorted_unstable(self) -> IntoIter<Self::Item> ⓘ
fn sorted_unstable(self) -> IntoIter<Self::Item> ⓘ
Sort all iterator elements into a new iterator in ascending order. Read more
Source§fn sorted_unstable_by<F>(self, cmp: F) -> IntoIter<Self::Item> ⓘ
fn sorted_unstable_by<F>(self, cmp: F) -> IntoIter<Self::Item> ⓘ
Sort all iterator elements into a new iterator in ascending order. Read more
Source§fn sorted_unstable_by_key<K, F>(self, f: F) -> IntoIter<Self::Item> ⓘ
fn sorted_unstable_by_key<K, F>(self, f: F) -> IntoIter<Self::Item> ⓘ
Sort all iterator elements into a new iterator in ascending order. Read more
Source§fn sorted(self) -> IntoIter<Self::Item> ⓘ
fn sorted(self) -> IntoIter<Self::Item> ⓘ
Sort all iterator elements into a new iterator in ascending order. Read more
Source§fn sorted_by<F>(self, cmp: F) -> IntoIter<Self::Item> ⓘ
fn sorted_by<F>(self, cmp: F) -> IntoIter<Self::Item> ⓘ
Sort all iterator elements into a new iterator in ascending order. Read more
Source§fn sorted_by_key<K, F>(self, f: F) -> IntoIter<Self::Item> ⓘ
fn sorted_by_key<K, F>(self, f: F) -> IntoIter<Self::Item> ⓘ
Sort all iterator elements into a new iterator in ascending order. Read more
Source§fn sorted_by_cached_key<K, F>(self, f: F) -> IntoIter<Self::Item> ⓘ
fn sorted_by_cached_key<K, F>(self, f: F) -> IntoIter<Self::Item> ⓘ
Sort all iterator elements into a new iterator in ascending order. The key function is
called exactly once per key. Read more
Source§fn k_smallest(self, k: usize) -> IntoIter<Self::Item> ⓘ
fn k_smallest(self, k: usize) -> IntoIter<Self::Item> ⓘ
Sort the k smallest elements into a new iterator, in ascending order. Read more
Source§fn partition_map<A, B, F, L, R>(self, predicate: F) -> (A, B)
fn partition_map<A, B, F, L, R>(self, predicate: F) -> (A, B)
Collect all iterator elements into one of two
partitions. Unlike
Iterator::partition, each partition may
have a distinct type. Read moreSource§fn partition_result<A, B, T, E>(self) -> (A, B)
fn partition_result<A, B, T, E>(self) -> (A, B)
Partition a sequence of
Results into one list of all the Ok elements
and another list of all the Err elements. Read moreSource§fn into_group_map<K, V>(self) -> HashMap<K, Vec<V>>
fn into_group_map<K, V>(self) -> HashMap<K, Vec<V>>
Return a
HashMap of keys mapped to Vecs of values. Keys and values
are taken from (Key, Value) tuple pairs yielded by the input iterator. Read moreSource§fn into_group_map_by<K, V, F>(self, f: F) -> HashMap<K, Vec<V>>
fn into_group_map_by<K, V, F>(self, f: F) -> HashMap<K, Vec<V>>
Return an
Iterator on a HashMap. Keys mapped to Vecs of values. The key is specified
in the closure. Read moreSource§fn into_grouping_map<K, V>(self) -> GroupingMap<Self>
fn into_grouping_map<K, V>(self) -> GroupingMap<Self>
Constructs a
GroupingMap to be used later with one of the efficient
group-and-fold operations it allows to perform. Read moreSource§fn into_grouping_map_by<K, V, F>(
self,
key_mapper: F,
) -> GroupingMap<MapForGrouping<Self, F>>
fn into_grouping_map_by<K, V, F>( self, key_mapper: F, ) -> GroupingMap<MapForGrouping<Self, F>>
Constructs a
GroupingMap to be used later with one of the efficient
group-and-fold operations it allows to perform. Read moreSource§fn min_set_by<F>(self, compare: F) -> Vec<Self::Item>
fn min_set_by<F>(self, compare: F) -> Vec<Self::Item>
Return all minimum elements of an iterator, as determined by
the specified function. Read more
Source§fn min_set_by_key<K, F>(self, key: F) -> Vec<Self::Item>
fn min_set_by_key<K, F>(self, key: F) -> Vec<Self::Item>
Return all minimum elements of an iterator, as determined by
the specified function. Read more
Source§fn max_set_by<F>(self, compare: F) -> Vec<Self::Item>
fn max_set_by<F>(self, compare: F) -> Vec<Self::Item>
Return all maximum elements of an iterator, as determined by
the specified function. Read more
Source§fn max_set_by_key<K, F>(self, key: F) -> Vec<Self::Item>
fn max_set_by_key<K, F>(self, key: F) -> Vec<Self::Item>
Return all minimum elements of an iterator, as determined by
the specified function. Read more
Source§fn minmax(self) -> MinMaxResult<Self::Item>
fn minmax(self) -> MinMaxResult<Self::Item>
Return the minimum and maximum elements in the iterator. Read more
Source§fn minmax_by_key<K, F>(self, key: F) -> MinMaxResult<Self::Item>
fn minmax_by_key<K, F>(self, key: F) -> MinMaxResult<Self::Item>
Return the minimum and maximum element of an iterator, as determined by
the specified function. Read more
Source§fn minmax_by<F>(self, compare: F) -> MinMaxResult<Self::Item>
fn minmax_by<F>(self, compare: F) -> MinMaxResult<Self::Item>
Return the minimum and maximum element of an iterator, as determined by
the specified comparison function. Read more
Source§fn position_max(self) -> Option<usize>
fn position_max(self) -> Option<usize>
Return the position of the maximum element in the iterator. Read more
Source§fn position_max_by_key<K, F>(self, key: F) -> Option<usize>
fn position_max_by_key<K, F>(self, key: F) -> Option<usize>
Return the position of the maximum element in the iterator, as
determined by the specified function. Read more
Source§fn position_max_by<F>(self, compare: F) -> Option<usize>
fn position_max_by<F>(self, compare: F) -> Option<usize>
Return the position of the maximum element in the iterator, as
determined by the specified comparison function. Read more
Source§fn position_min(self) -> Option<usize>
fn position_min(self) -> Option<usize>
Return the position of the minimum element in the iterator. Read more
Source§fn position_min_by_key<K, F>(self, key: F) -> Option<usize>
fn position_min_by_key<K, F>(self, key: F) -> Option<usize>
Return the position of the minimum element in the iterator, as
determined by the specified function. Read more
Source§fn position_min_by<F>(self, compare: F) -> Option<usize>
fn position_min_by<F>(self, compare: F) -> Option<usize>
Return the position of the minimum element in the iterator, as
determined by the specified comparison function. Read more
Source§fn position_minmax(self) -> MinMaxResult<usize>
fn position_minmax(self) -> MinMaxResult<usize>
Return the positions of the minimum and maximum elements in
the iterator. Read more
Source§fn position_minmax_by_key<K, F>(self, key: F) -> MinMaxResult<usize>
fn position_minmax_by_key<K, F>(self, key: F) -> MinMaxResult<usize>
Return the postions of the minimum and maximum elements of an
iterator, as determined by the specified function. Read more
Source§fn position_minmax_by<F>(self, compare: F) -> MinMaxResult<usize>
fn position_minmax_by<F>(self, compare: F) -> MinMaxResult<usize>
Return the postions of the minimum and maximum elements of an
iterator, as determined by the specified comparison function. Read more
Source§fn exactly_one(self) -> Result<Self::Item, ExactlyOneError<Self>>where
Self: Sized,
fn exactly_one(self) -> Result<Self::Item, ExactlyOneError<Self>>where
Self: Sized,
If the iterator yields exactly one element, that element will be returned, otherwise
an error will be returned containing an iterator that has the same output as the input
iterator. Read more
Source§fn at_most_one(self) -> Result<Option<Self::Item>, ExactlyOneError<Self>>where
Self: Sized,
fn at_most_one(self) -> Result<Option<Self::Item>, ExactlyOneError<Self>>where
Self: Sized,
If the iterator yields no elements, Ok(None) will be returned. If the iterator yields
exactly one element, that element will be returned, otherwise an error will be returned
containing an iterator that has the same output as the input iterator. Read more
Source§fn multipeek(self) -> MultiPeek<Self> ⓘwhere
Self: Sized,
fn multipeek(self) -> MultiPeek<Self> ⓘwhere
Self: Sized,
An iterator adaptor that allows the user to peek at multiple
.next()
values without advancing the base iterator. Read moreSource§fn counts(self) -> HashMap<Self::Item, usize>
fn counts(self) -> HashMap<Self::Item, usize>
Collect the items in this iterator and return a
HashMap which
contains each item that appears in the iterator and the number
of times it appears. Read moreSource§fn counts_by<K, F>(self, f: F) -> HashMap<K, usize>
fn counts_by<K, F>(self, f: F) -> HashMap<K, usize>
Collect the items in this iterator and return a
HashMap which
contains each item that appears in the iterator and the number
of times it appears,
determining identity using a keying function. Read moreSource§fn multiunzip<FromI>(self) -> FromIwhere
Self: Sized + MultiUnzip<FromI>,
fn multiunzip<FromI>(self) -> FromIwhere
Self: Sized + MultiUnzip<FromI>,
Converts an iterator of tuples into a tuple of containers. Read more
§impl<T> ParallelBridge for T
impl<T> ParallelBridge for T
§fn par_bridge(self) -> IterBridge<T>
fn par_bridge(self) -> IterBridge<T>
Creates a bridge from this type to a
ParallelIterator.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<S, T> ProgressIterator for Twhere
T: Iterator<Item = S>,
impl<S, T> ProgressIterator for Twhere
T: Iterator<Item = S>,
§fn progress_with(self, progress: ProgressBar) -> ProgressBarIter<T> ⓘ
fn progress_with(self, progress: ProgressBar) -> ProgressBarIter<T> ⓘ
Wrap an iterator with a custom progress bar.
§fn try_progress(self) -> Option<ProgressBarIter<Self>>
fn try_progress(self) -> Option<ProgressBarIter<Self>>
Wrap an iterator with default styling. Uses
Iterator::size_hint() to get length.
Returns Some(..) only if size_hint.1 is Some. If you want to create a progress bar
even if size_hint.1 returns None use progress_count()
or progress_with() instead.§fn progress(self) -> ProgressBarIter<Self> ⓘwhere
Self: ExactSizeIterator,
fn progress(self) -> ProgressBarIter<Self> ⓘwhere
Self: ExactSizeIterator,
Wrap an iterator with default styling.
§fn progress_count(self, len: u64) -> ProgressBarIter<Self> ⓘ
fn progress_count(self, len: u64) -> ProgressBarIter<Self> ⓘ
Wrap an iterator with an explicit element count.
§fn progress_with_style(self, style: ProgressStyle) -> ProgressBarIter<Self> ⓘwhere
Self: ExactSizeIterator,
fn progress_with_style(self, style: ProgressStyle) -> ProgressBarIter<Self> ⓘwhere
Self: ExactSizeIterator,
Wrap an iterator with a progress bar and style it.
§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§fn type_check(object: &Bound<'_, PyAny>) -> bool
fn type_check(object: &Bound<'_, PyAny>) -> bool
§fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
Returns the expected type as a possible argument for the
isinstance and issubclass function. Read moreimpl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.