Files
a0_basic_app
a1_vehicle
a2_async_sim
vehicle
ab_glyph
ab_glyph_rasterizer
adler
adler32
agents
aho_corasick
anyhow
approx
aquamarine
ash
extensions
experimental
ext
khr
mvk
nv
vk
atty
bitflags
bytemuck
byteorder
cache_padded
cfg_if
chrono
format
naive
offset
sys
color_quant
crc32fast
crossbeam_channel
crossbeam_deque
crossbeam_epoch
crossbeam_utils
deflate
draw2d
camera
geometry
glfw_window
graphics
ext
frame
layer
pipeline2d
texture_atlas
vertex
vulkan
buffer
command_pool
device
device_allocator
instance
swapchain
texture
either
flexi_logger
writers
file_log_writer
generic_array
gif
glfw
glfw_sys
glob
image
codecs
bmp
hdr
ico
jpeg
pnm
tga
webp
imageops
io
math
utils
indoc
itertools
adaptors
combinations.rscombinations_with_replacement.rsconcat_impl.rscons_tuples_impl.rsdiff.rseither_or_both.rsexactly_one_err.rsformat.rsfree.rsgroup_map.rsgroupbylazy.rsimpl_macros.rsintersperse.rskmerge_impl.rslazy_buffer.rslib.rsmerge_join.rsminmax.rsmultipeek_impl.rspad_tail.rspeeking_take_while.rspermutations.rsprocess_results_impl.rsput_back_n_impl.rsrciter_impl.rsrepeatn.rssize_hint.rssources.rstee.rstuple_impl.rsunique_impl.rswith_position.rszip_eq_impl.rszip_longest.rsziptuple.rs
jpeg_decoder
lazy_static
libc
unix
libloading
log
matrixmultiply
memchr
memoffset
miniz_oxide
nalgebra
base
alias.rsalias_slice.rsallocator.rsarray_storage.rsblas.rscg.rscomponentwise.rsconstraint.rsconstruction.rsconstruction_slice.rsconversion.rscoordinates.rsdefault_allocator.rsdimension.rsedition.rshelper.rsindexing.rsinterpolation.rsiter.rsmatrix.rsmatrix_simba.rsmatrix_slice.rsmin_max.rsmod.rsnorm.rsops.rsproperties.rsscalar.rsstatistics.rsstorage.rsswizzle.rsunit.rsvec_storage.rs
geometry
abstract_rotation.rsdual_quaternion.rsdual_quaternion_construction.rsdual_quaternion_conversion.rsdual_quaternion_ops.rsisometry.rsisometry_alias.rsisometry_construction.rsisometry_conversion.rsisometry_interpolation.rsisometry_ops.rsisometry_simba.rsmod.rsop_macros.rsorthographic.rsperspective.rspoint.rspoint_alias.rspoint_construction.rspoint_conversion.rspoint_coordinates.rspoint_ops.rspoint_simba.rsquaternion.rsquaternion_construction.rsquaternion_conversion.rsquaternion_coordinates.rsquaternion_ops.rsquaternion_simba.rsreflection.rsrotation.rsrotation_alias.rsrotation_construction.rsrotation_conversion.rsrotation_interpolation.rsrotation_ops.rsrotation_simba.rsrotation_specialization.rssimilarity.rssimilarity_alias.rssimilarity_construction.rssimilarity_conversion.rssimilarity_ops.rssimilarity_simba.rsswizzle.rstransform.rstransform_alias.rstransform_construction.rstransform_conversion.rstransform_ops.rstransform_simba.rstranslation.rstranslation_alias.rstranslation_construction.rstranslation_conversion.rstranslation_coordinates.rstranslation_ops.rstranslation_simba.rsunit_complex.rsunit_complex_construction.rsunit_complex_conversion.rsunit_complex_ops.rsunit_complex_simba.rs
linalg
third_party
num_complex
num_cpus
num_integer
num_iter
num_rational
num_traits
owned_ttf_parser
paste
png
proc_macro2
proc_macro_error
proc_macro_error_attr
quote
raw_window_handle
rawpointer
rayon
collections
compile_fail
iter
chain.rschunks.rscloned.rscopied.rsempty.rsenumerate.rsextend.rsfilter.rsfilter_map.rsfind.rsflat_map.rsflat_map_iter.rsflatten.rsflatten_iter.rsfold.rsfor_each.rsfrom_par_iter.rsinspect.rsinterleave.rsinterleave_shortest.rsintersperse.rslen.rsmap.rsmap_with.rsmod.rsmultizip.rsnoop.rsonce.rspanic_fuse.rspar_bridge.rspositions.rsproduct.rsreduce.rsrepeat.rsrev.rsskip.rssplitter.rsstep_by.rssum.rstake.rstry_fold.rstry_reduce.rstry_reduce_with.rsunzip.rsupdate.rswhile_some.rszip.rszip_eq.rs
slice
rayon_core
compile_fail
join
scope
sleep
spawn
thread_pool
regex
regex_syntax
ast
hir
unicode_tables
scoped_threadpool
scopeguard
semver
semver_parser
serde
de
private
ser
serde_derive
simba
scalar
simd
smawk
spin_sleep
syn
attr.rsawait.rsbigint.rsbuffer.rscustom_keyword.rscustom_punctuation.rsdata.rsderive.rsdiscouraged.rserror.rsexport.rsexpr.rsext.rsgenerics.rsgroup.rsident.rslib.rslifetime.rslit.rslookahead.rsmac.rsmacros.rsop.rsparse.rsparse_macro_input.rsparse_quote.rspath.rsprint.rspunctuated.rssealed.rsspan.rsspanned.rsthread.rstoken.rsty.rsverbatim.rs
terminal_size
textwrap
thiserror
thiserror_impl
tiff
time
triple_buffer
ttf_parser
tables
cff
cmap
typenum
unicode_width
unicode_xid
unindent
vk_sys
weezl
yansi
>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
use crate::iter::plumbing::*; use crate::iter::*; /// Creates a parallel iterator that produces an element exactly once. /// /// This admits no parallelism on its own, but it could be chained to existing /// parallel iterators to extend their contents, or otherwise used for any code /// that deals with generic parallel iterators. /// /// # Examples /// /// ``` /// use rayon::prelude::*; /// use rayon::iter::once; /// /// let pi = (0..1234).into_par_iter() /// .chain(once(-1)) /// .chain(1234..10_000); /// /// assert_eq!(pi.clone().count(), 10_001); /// assert_eq!(pi.clone().filter(|&x| x < 0).count(), 1); /// assert_eq!(pi.position_any(|x| x < 0), Some(1234)); /// ``` pub fn once<T: Send>(item: T) -> Once<T> { Once { item } } /// Iterator adaptor for [the `once()` function](fn.once.html). #[derive(Clone, Debug)] pub struct Once<T: Send> { item: T, } impl<T: Send> ParallelIterator for Once<T> { type Item = T; fn drive_unindexed<C>(self, consumer: C) -> C::Result where C: UnindexedConsumer<Self::Item>, { self.drive(consumer) } fn opt_len(&self) -> Option<usize> { Some(1) } } impl<T: Send> IndexedParallelIterator for Once<T> { fn drive<C>(self, consumer: C) -> C::Result where C: Consumer<Self::Item>, { consumer.into_folder().consume(self.item).complete() } fn len(&self) -> usize { 1 } fn with_producer<CB>(self, callback: CB) -> CB::Output where CB: ProducerCallback<Self::Item>, { // Let `OptionProducer` handle it. Some(self.item).into_par_iter().with_producer(callback) } }