pub struct Archiver<W> { /* private fields */ }Expand description
Writer of sqlite3 data - toplevel entrypoint
W should be buffered.
After an error, it is not safe to continue to write to W
(with these facilities, or any other):
partial data may have been written,
so the output should then be treated as corrupted and useless.
To use this:
- Call
Archiver::start()and record thetable_names. - For each table, call
start_table, get the rows you want out with a normal database query, and callTableArchiver::write_rowon each one. - At the end, call
finish.
Implementations§
Source§impl<W: Write> Archiver<W>
impl<W: Write> Archiver<W>
Sourcepub fn start<S: Into<String>>(
dbt: &Transaction<'_>,
w: W,
table_names: impl IntoIterator<Item = S>,
) -> Result<Self, Error>
pub fn start<S: Into<String>>( dbt: &Transaction<'_>, w: W, table_names: impl IntoIterator<Item = S>, ) -> Result<Self, Error>
Start writing a dump.
Will enumerate the tables found in the database,
and pass their names to table_names.
This can be used to enumerate over all tables; or they can be ignored if only certain tables need to be dumped.
(The schema for every existing table will be dumped, unconditionally; there is not currently a way to control this.)
Sourcepub fn start_table(&mut self, name: &str) -> Result<TableArchiver<'_, W>, Error>
pub fn start_table(&mut self, name: &str) -> Result<TableArchiver<'_, W>, Error>
Start writing a dump of a particular table.
Sourcepub fn finish(self) -> Result<(), Error>
pub fn finish(self) -> Result<(), Error>
Finish writing the dump.
The writer W will be flushed and then dropped.
Sourcepub fn finish_with_writer(self) -> Result<W, Error>
pub fn finish_with_writer(self) -> Result<W, Error>
Finish writing the dump, returning the writer.
The writer W will be flushed.
Sourcepub fn writer_mut(&mut self) -> &mut W
pub fn writer_mut(&mut self) -> &mut W
Access the inner writer
Take care! Using this to write will probably make data corruption.
Auto Trait Implementations§
impl<W> Freeze for Archiver<W>where
W: Freeze,
impl<W> RefUnwindSafe for Archiver<W>where
W: RefUnwindSafe,
impl<W> Send for Archiver<W>where
W: Send,
impl<W> Sync for Archiver<W>where
W: Sync,
impl<W> Unpin for Archiver<W>where
W: Unpin,
impl<W> UnwindSafe for Archiver<W>where
W: UnwindSafe,
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more