Files
addr2line
adler
aho_corasick
ansi_term
atty
backtrace
base64
bincode
bitflags
bitmaps
bstr
byteset
search
unicode
byteorder
bytes
buf
fmt
bytesize
cargo
core
compiler
resolver
source
ops
cargo_clean.rscargo_compile.rscargo_doc.rscargo_fetch.rscargo_generate_lockfile.rscargo_install.rscargo_new.rscargo_output_metadata.rscargo_package.rscargo_pkgid.rscargo_read_manifest.rscargo_run.rscargo_test.rscargo_uninstall.rscommon_for_install_and_uninstall.rsfix.rslockfile.rsmod.rsregistry.rsresolve.rsvendor.rs
sources
util
canonical_url.rscommand_prelude.rscpu.rsdependency_queue.rsdiagnostic_server.rserrors.rsflock.rsgraph.rshex.rsimportant_paths.rsinto_url.rsinto_url_with_base.rsjob.rslev_distance.rslockserver.rsmachine_message.rsmod.rsnetwork.rspaths.rsprocess_builder.rsprofile.rsprogress.rsread2.rsrustc.rssha256.rsto_semver.rsvcs.rsworkspace.rs
cargo_platform
cfg_if
chrono
format
naive
offset
sys
clap
app
args
completions
color_backtrace
corpus_database
corpus_database_dsl
generator
corpus_extractor
corpus_manager
queries
corpus_manager_driver
corpus_queries_derive
corpus_queries_impl
crates_index
crates_io
crc32fast
crossbeam_queue
crossbeam_utils
crypto_hash
csv
csv_core
curl
curl_sys
darling
darling_core
ast
codegen
error
options
usage
util
darling_macro
datafrog
datapond
datapond_derive
datapond_macro
either
encoding_rs
env_logger
filter
fmt
error_chain
failure
failure_derive
filetime
flate2
deflate
ffi
gz
zlib
fnv
foreign_types
foreign_types_shared
form_urlencoded
fs2
futures
future
sink
stream
and_then.rsbuffer_unordered.rsbuffered.rscatch_unwind.rschain.rschannel.rschunks.rscollect.rsconcat.rsempty.rsfilter.rsfilter_map.rsflatten.rsfold.rsfor_each.rsforward.rsfrom_err.rsfuse.rsfuture.rsfutures_ordered.rsfutures_unordered.rsinspect.rsinspect_err.rsiter.rsiter_ok.rsiter_result.rsmap.rsmap_err.rsmerge.rsmod.rsonce.rsor_else.rspeek.rspoll_fn.rsrepeat.rsselect.rsskip.rsskip_while.rssplit.rstake.rstake_while.rsthen.rsunfold.rswait.rszip.rs
sync
task_impl
unsync
futures_channel
futures_core
futures_io
futures_macro
futures_sink
futures_task
futures_util
async_await
future
future
try_future
io
lock
stream
futures_unordered
stream
buffer_unordered.rsbuffered.rscatch_unwind.rschain.rschunks.rscollect.rsconcat.rscycle.rsenumerate.rsfilter.rsfilter_map.rsflatten.rsfold.rsfor_each.rsfor_each_concurrent.rsfuse.rsinto_future.rsmap.rsmod.rsnext.rspeek.rsready_chunks.rsscan.rsselect_next_some.rsskip.rsskip_while.rstake.rstake_until.rstake_while.rsthen.rsunzip.rszip.rs
try_stream
task
getrandom
gimli
read
git2
blame.rsblob.rsbranch.rsbuf.rsbuild.rscall.rscert.rscherrypick.rscommit.rsconfig.rscred.rsdescribe.rsdiff.rserror.rsindex.rslib.rsmerge.rsmessage.rsnote.rsobject.rsodb.rsoid.rsoid_array.rspackbuilder.rspanic.rspatch.rspathspec.rsproxy_options.rsrebase.rsreference.rsreflog.rsrefspec.rsremote.rsremote_callbacks.rsrepo.rsrevspec.rsrevwalk.rssignature.rsstash.rsstatus.rsstring_array.rssubmodule.rstag.rstime.rstransport.rstree.rstreebuilder.rsutil.rs
git2_curl
glob
globset
h2
codec
frame
hpack
proto
hashbrown
heck
hex
home
http
http_body
httparse
httpdate
humantime
hyper
body
client
common
proto
service
hyper_tls
ident_case
idna
ignore
im_rc
hash
nodes
ord
vector
indexmap
iovec
ipnet
itertools
combinations.rscombinations_with_replacement.rsconcat_impl.rscons_tuples_impl.rsdiff.rseither_or_both.rsexactly_one_err.rsformat.rsfree.rsgroup_map.rsgroupbylazy.rsgrouping_map.rsimpl_macros.rsintersperse.rsk_smallest.rskmerge_impl.rslazy_buffer.rslib.rsmerge_join.rsminmax.rsmultipeek_impl.rspad_tail.rspeek_nth.rspeeking_take_while.rspermutations.rspowerset.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
itoa
jobserver
lazy_static
lazycell
libc
unix
libgit2_sys
libnghttp2_sys
libssh2_sys
libz_sys
lock_api
log
log_derive
matches
maybe_uninit
memchr
mime
miniz_oxide
mio
event
net
sys
mio_uds
native_tls
nix
net
sys
num_cpus
num_integer
num_traits
object
read
once_cell
opener
openssl
openssl_probe
openssl_sys
parking_lot
parking_lot_core
percent_encoding
pest
iterators
unicode
pin_project
pin_project_lite
pin_utils
ppv_lite86
print_stats
proc_macro2
proc_macro_error
proc_macro_error_attr
proc_macro_hack
proc_macro_nested
quick_error
quote
rand
distributions
weighted
rngs
seq
rand_chacha
rand_core
rand_xoshiro
common.rslib.rssplitmix64.rsxoroshiro128plus.rsxoroshiro128plusplus.rsxoroshiro128starstar.rsxoroshiro64star.rsxoroshiro64starstar.rsxoshiro128plus.rsxoshiro128plusplus.rsxoshiro128starstar.rsxoshiro256plus.rsxoshiro256plusplus.rsxoshiro256starstar.rsxoshiro512plus.rsxoshiro512plusplus.rsxoshiro512starstar.rs
regex
regex_automata
regex_syntax
ast
hir
unicode_tables
remove_dir_all
reqwest
async_impl
blocking
rustc
rustc_demangle
rustc_hash
rustc_workspace_hack
rustfix
rustwide
cmd
crates
native
tools
ryu
same_file
scopeguard
semver
semver_parser
serde
de
private
ser
serde_derive
serde_ignored
serde_json
serde_urlencoded
shell_escape
signal_hook_registry
simplelog
sized_chunks
inline_array
ring_buffer
sized_chunk
sparse_chunk
slab
smallvec
socket2
strip_ansi_escapes
strsim
structopt
structopt_derive
syn
attr.rsawait.rsbigint.rsbuffer.rscustom_keyword.rscustom_punctuation.rsdata.rsderive.rsdiscouraged.rserror.rsexport.rsexpr.rsext.rsfile.rsgenerics.rsgroup.rsident.rsitem.rslib.rslifetime.rslit.rslookahead.rsmac.rsmacros.rsop.rsparse.rsparse_macro_input.rsparse_quote.rspat.rspath.rsprint.rspunctuated.rsreserved.rssealed.rsspan.rsspanned.rsstmt.rsthread.rstoken.rstt.rsty.rsverbatim.rswhitespace.rs
synstructure
tar
tempdir
tempfile
termcolor
textwrap
thiserror
thiserror_impl
thread_local
time
tinyvec
tinyvec_macros
tokio
future
io
driver
util
async_buf_read_ext.rsasync_read_ext.rsasync_seek_ext.rsasync_write_ext.rsbuf_reader.rsbuf_stream.rsbuf_writer.rschain.rscopy.rscopy_bidirectional.rscopy_buf.rsempty.rsflush.rslines.rsmem.rsmod.rsread.rsread_buf.rsread_exact.rsread_int.rsread_line.rsread_to_end.rsread_to_string.rsread_until.rsrepeat.rsshutdown.rssink.rssplit.rstake.rsvec_with_initialized.rswrite.rswrite_all.rswrite_buf.rswrite_int.rswrite_vectored.rs
loom
std
macros
net
tcp
unix
park
runtime
blocking
task
thread_pool
sync
mpsc
rwlock
task
task
time
util
tokio_executor
tokio_io
_tokio_codec
codec
io
tokio_native_tls
tokio_process
tokio_reactor
tokio_signal
tokio_stream
stream_ext
wrappers
tokio_sync
tokio_util
codec
sync
toml
tower_service
tracing
tracing_core
tracing_futures
try_lock
typenum
ucd_trie
unicode_bidi
unicode_normalization
unicode_segmentation
unicode_width
unicode_xid
url
utf8parse
vec_map
vte
walkdir
want
xattr
>
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
use std::io; use std::mem; use futures::{Future, Poll}; use AsyncWrite; /// A future used to write the entire contents of some data to a stream. /// /// This is created by the [`write_all`] top-level method. /// /// [`write_all`]: fn.write_all.html #[derive(Debug)] pub struct WriteAll<A, T> { state: State<A, T>, } #[derive(Debug)] enum State<A, T> { Writing { a: A, buf: T, pos: usize }, Empty, } /// Creates a future that will write the entire contents of the buffer `buf` to /// the stream `a` provided. /// /// The returned future will not return until all the data has been written, and /// the future will resolve to the stream as well as the buffer (for reuse if /// needed). /// /// Any error which happens during writing will cause both the stream and the /// buffer to get destroyed. /// /// The `buf` parameter here only requires the `AsRef<[u8]>` trait, which should /// be broadly applicable to accepting data which can be converted to a slice. /// The `Window` struct is also available in this crate to provide a different /// window into a slice if necessary. pub fn write_all<A, T>(a: A, buf: T) -> WriteAll<A, T> where A: AsyncWrite, T: AsRef<[u8]>, { WriteAll { state: State::Writing { a: a, buf: buf, pos: 0, }, } } fn zero_write() -> io::Error { io::Error::new(io::ErrorKind::WriteZero, "zero-length write") } impl<A, T> Future for WriteAll<A, T> where A: AsyncWrite, T: AsRef<[u8]>, { type Item = (A, T); type Error = io::Error; fn poll(&mut self) -> Poll<(A, T), io::Error> { match self.state { State::Writing { ref mut a, ref buf, ref mut pos, } => { let buf = buf.as_ref(); while *pos < buf.len() { let n = try_ready!(a.poll_write(&buf[*pos..])); *pos += n; if n == 0 { return Err(zero_write()); } } } State::Empty => panic!("poll a WriteAll after it's done"), } match mem::replace(&mut self.state, State::Empty) { State::Writing { a, buf, .. } => Ok((a, buf).into()), State::Empty => panic!(), } } }