mirror of
https://github.com/async-rs/async-std.git
synced 2025-04-22 00:06:45 +00:00
Merge pull request #526 from yjhmelody/refactor-dir
refactor io dir to be same with std and export IntoInnerError
This commit is contained in:
commit
77800ab3f9
3 changed files with 32 additions and 10 deletions
|
@ -4,11 +4,9 @@ use std::{cmp, fmt};
|
||||||
|
|
||||||
use pin_project_lite::pin_project;
|
use pin_project_lite::pin_project;
|
||||||
|
|
||||||
use crate::io::{self, BufRead, Read, Seek, SeekFrom};
|
use crate::io::{self, BufRead, Read, Seek, SeekFrom, DEFAULT_BUF_SIZE};
|
||||||
use crate::task::{Context, Poll};
|
use crate::task::{Context, Poll};
|
||||||
|
|
||||||
const DEFAULT_CAPACITY: usize = 8 * 1024;
|
|
||||||
|
|
||||||
pin_project! {
|
pin_project! {
|
||||||
/// Adds buffering to any reader.
|
/// Adds buffering to any reader.
|
||||||
///
|
///
|
||||||
|
@ -72,7 +70,7 @@ impl<R: io::Read> BufReader<R> {
|
||||||
/// # Ok(()) }) }
|
/// # Ok(()) }) }
|
||||||
/// ```
|
/// ```
|
||||||
pub fn new(inner: R) -> BufReader<R> {
|
pub fn new(inner: R) -> BufReader<R> {
|
||||||
BufReader::with_capacity(DEFAULT_CAPACITY, inner)
|
BufReader::with_capacity(DEFAULT_BUF_SIZE, inner)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a new buffered reader with the specified capacity.
|
/// Creates a new buffered reader with the specified capacity.
|
||||||
|
|
|
@ -4,11 +4,9 @@ use std::pin::Pin;
|
||||||
use pin_project_lite::pin_project;
|
use pin_project_lite::pin_project;
|
||||||
|
|
||||||
use crate::io::write::WriteExt;
|
use crate::io::write::WriteExt;
|
||||||
use crate::io::{self, Seek, SeekFrom, Write};
|
use crate::io::{self, Seek, SeekFrom, Write, DEFAULT_BUF_SIZE};
|
||||||
use crate::task::{Context, Poll, ready};
|
use crate::task::{Context, Poll, ready};
|
||||||
|
|
||||||
const DEFAULT_CAPACITY: usize = 8 * 1024;
|
|
||||||
|
|
||||||
pin_project! {
|
pin_project! {
|
||||||
/// Wraps a writer and buffers its output.
|
/// Wraps a writer and buffers its output.
|
||||||
///
|
///
|
||||||
|
@ -87,8 +85,32 @@ pin_project! {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// An error returned by `into_inner` which combines an error that
|
||||||
|
/// happened while writing out the buffer, and the buffered writer object
|
||||||
|
/// which may be used to recover from the condition.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```no_run
|
||||||
|
/// # fn main() -> std::io::Result<()> { async_std::task::block_on(async {
|
||||||
|
/// use async_std::io::BufWriter;
|
||||||
|
/// use async_std::net::TcpStream;
|
||||||
|
///
|
||||||
|
/// let buf_writer = BufWriter::new(TcpStream::connect("127.0.0.1:34251").await?);
|
||||||
|
///
|
||||||
|
/// // unwrap the TcpStream and flush the buffer
|
||||||
|
/// let stream = match buf_writer.into_inner().await {
|
||||||
|
/// Ok(s) => s,
|
||||||
|
/// Err(e) => {
|
||||||
|
/// // Here, e is an IntoInnerError
|
||||||
|
/// panic!("An error occurred");
|
||||||
|
/// }
|
||||||
|
/// };
|
||||||
|
/// #
|
||||||
|
/// # Ok(()) }) }
|
||||||
|
///```
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct IntoInnerError<W>(W, std::io::Error);
|
pub struct IntoInnerError<W>(W, crate::io::Error);
|
||||||
|
|
||||||
impl<W: Write> BufWriter<W> {
|
impl<W: Write> BufWriter<W> {
|
||||||
/// Creates a new `BufWriter` with a default buffer capacity. The default is currently 8 KB,
|
/// Creates a new `BufWriter` with a default buffer capacity. The default is currently 8 KB,
|
||||||
|
@ -107,7 +129,7 @@ impl<W: Write> BufWriter<W> {
|
||||||
/// # Ok(()) }) }
|
/// # Ok(()) }) }
|
||||||
/// ```
|
/// ```
|
||||||
pub fn new(inner: W) -> BufWriter<W> {
|
pub fn new(inner: W) -> BufWriter<W> {
|
||||||
BufWriter::with_capacity(DEFAULT_CAPACITY, inner)
|
BufWriter::with_capacity(DEFAULT_BUF_SIZE, inner)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a new `BufWriter` with the specified buffer capacity.
|
/// Creates a new `BufWriter` with the specified buffer capacity.
|
||||||
|
|
|
@ -269,13 +269,15 @@
|
||||||
//! [`Result`]: https://doc.rust-lang.org/std/result/enum.Result.html
|
//! [`Result`]: https://doc.rust-lang.org/std/result/enum.Result.html
|
||||||
//! [`.unwrap()`]: https://doc.rust-lang.org/std/result/enum.Result.html#method.unwrap
|
//! [`.unwrap()`]: https://doc.rust-lang.org/std/result/enum.Result.html#method.unwrap
|
||||||
|
|
||||||
|
const DEFAULT_BUF_SIZE: usize = 8 * 1024;
|
||||||
|
|
||||||
cfg_std! {
|
cfg_std! {
|
||||||
#[doc(inline)]
|
#[doc(inline)]
|
||||||
pub use std::io::{Error, ErrorKind, IoSlice, IoSliceMut, Result, SeekFrom};
|
pub use std::io::{Error, ErrorKind, IoSlice, IoSliceMut, Result, SeekFrom};
|
||||||
|
|
||||||
pub use buf_read::{BufRead, Lines};
|
pub use buf_read::{BufRead, Lines};
|
||||||
pub use buf_reader::BufReader;
|
pub use buf_reader::BufReader;
|
||||||
pub use buf_writer::BufWriter;
|
pub use buf_writer::{BufWriter, IntoInnerError};
|
||||||
pub use copy::copy;
|
pub use copy::copy;
|
||||||
pub use cursor::Cursor;
|
pub use cursor::Cursor;
|
||||||
pub use empty::{empty, Empty};
|
pub use empty::{empty, Empty};
|
||||||
|
|
Loading…
Reference in a new issue