Add Seek::seek_relative
This commit is contained in:
parent
ee8c9d3c34
commit
d6337e6568
@ -492,6 +492,16 @@ impl<R: ?Sized + Seek> Seek for BufReader<R> {
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Seeks relative to the current position.
|
||||||
|
///
|
||||||
|
/// If the new position lies within the buffer, the buffer will not be
|
||||||
|
/// flushed, allowing for more efficient seeks. This method does not return
|
||||||
|
/// the location of the underlying reader, so the caller must track this
|
||||||
|
/// information themselves if it is required.
|
||||||
|
fn seek_relative(&mut self, offset: i64) -> io::Result<()> {
|
||||||
|
self.seek_relative(offset)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T: ?Sized> SizeHint for BufReader<T> {
|
impl<T: ?Sized> SizeHint for BufReader<T> {
|
||||||
|
@ -1957,6 +1957,32 @@ pub trait Seek {
|
|||||||
fn stream_position(&mut self) -> Result<u64> {
|
fn stream_position(&mut self) -> Result<u64> {
|
||||||
self.seek(SeekFrom::Current(0))
|
self.seek(SeekFrom::Current(0))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Seeks relative to the current position.
|
||||||
|
///
|
||||||
|
/// This is equivalent to `self.seek(SeekFrom::Current(offset))`.
|
||||||
|
///
|
||||||
|
/// # Example
|
||||||
|
///
|
||||||
|
/// ```no_run
|
||||||
|
/// #![feature(seek_seek_relative)]
|
||||||
|
/// use std::{
|
||||||
|
/// io::{self, Seek},
|
||||||
|
/// fs::File,
|
||||||
|
/// };
|
||||||
|
///
|
||||||
|
/// fn main() -> io::Result<()> {
|
||||||
|
/// let mut f = File::open("foo.txt")?;
|
||||||
|
/// f.seek_relative(10)?;
|
||||||
|
/// assert_eq!(f.stream_position()?, 10);
|
||||||
|
/// Ok(())
|
||||||
|
/// }
|
||||||
|
/// ```
|
||||||
|
#[unstable(feature = "seek_seek_relative", issue = "none")]
|
||||||
|
fn seek_relative(&mut self, offset: i64) -> Result<()> {
|
||||||
|
self.seek(SeekFrom::Current(offset))?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Enumeration of possible methods to seek within an I/O object.
|
/// Enumeration of possible methods to seek within an I/O object.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user