Struct swipl::stream::ReadablePrologStream
source · pub struct ReadablePrologStream<'a> { /* private fields */ }
Expand description
A stream from prolog that can be read from.
This stream will be in a claimed state, meaning, any attempted handling of this stream from another (prolog) thread will fail. On drop, this claim will be released. It is therefore important to drop this stream as soon as possible.
Implementations§
source§impl<'a> ReadablePrologStream<'a>
impl<'a> ReadablePrologStream<'a>
sourcepub unsafe fn new(stream: *mut IOSTREAM) -> ReadablePrologStream<'a> ⓘ
pub unsafe fn new(stream: *mut IOSTREAM) -> ReadablePrologStream<'a> ⓘ
Wrap a readable prolog stream.
Safety
This is only safe to do with actual IOSTREAMs coming out of SWI-Prolog, which are readable.
pub fn encoding(&self) -> StreamEncoding
sourcepub fn decoding_reader(self) -> Either<Self, Latin1Reader<Self>>
pub fn decoding_reader(self) -> Either<Self, Latin1Reader<Self>>
Returns an implementation of Read which will automatically decode the underlying prolog stream, ensuring that it looks like proper utf-8.
This is especially useful for cases where we like to pass a reader to a decoder like serde.
Trait Implementations§
source§impl<'a> Drop for ReadablePrologStream<'a>
impl<'a> Drop for ReadablePrologStream<'a>
source§impl<'a> Read for ReadablePrologStream<'a>
impl<'a> Read for ReadablePrologStream<'a>
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. Read more
1.36.0 · source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like
read
, except that it reads into a slice of buffers. Read moresource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
Read all bytes until EOF in this source, placing them into
buf
. Read more1.0.0 · source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Read all bytes until EOF in this source, appending them to
buf
. Read more1.6.0 · source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Read the exact number of bytes required to fill
buf
. Read moresource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Pull some bytes from this source into the specified buffer. Read more
source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Read the exact number of bytes required to fill
cursor
. Read more1.0.0 · source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adaptor for this instance of
Read
. Read moreAuto Trait Implementations§
impl<'a> RefUnwindSafe for ReadablePrologStream<'a>
impl<'a> !Send for ReadablePrologStream<'a>
impl<'a> !Sync for ReadablePrologStream<'a>
impl<'a> Unpin for ReadablePrologStream<'a>
impl<'a> UnwindSafe for ReadablePrologStream<'a>
Blanket Implementations§
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