ResumableBatchGenerator

Struct ResumableBatchGenerator 

Source
pub struct ResumableBatchGenerator { /* private fields */ }
Expand description

Resumable batch generator with checkpoint support.

This generator can save progress and resume from where it left off, useful for generating very large batches of keys.

§Example

use rustywallet_batch::checkpoint::ResumableBatchGenerator;
use rustywallet_batch::mmap::OutputFormat;

// Start or resume generation
let mut generator = ResumableBatchGenerator::new(
    "my-job",
    1_000_000,
    "keys.txt",
    "checkpoint.json",
);

generator.generate_with_progress(|progress| {
    println!("Progress: {:.1}%", progress);
}).unwrap();

Implementations§

Source§

impl ResumableBatchGenerator

Source

pub fn new( job_id: &str, total_count: usize, output_path: &str, checkpoint_path: &str, ) -> Self

Create a new resumable generator.

If a checkpoint exists, it will be loaded and generation will resume.

Source

pub fn new_incremental( job_id: &str, total_count: usize, output_path: &str, checkpoint_path: &str, start_key: &str, ) -> Self

Create a new resumable generator for incremental mode.

Source

pub fn chunk_size(self, size: usize) -> Self

Set the chunk size for generation.

Source

pub fn checkpoint_interval(self, interval: usize) -> Self

Set the checkpoint interval.

Source

pub fn parallel(self, enabled: bool) -> Self

Enable or disable parallel generation.

Source

pub fn progress(&self) -> &Checkpoint

Get current progress.

Source

pub fn generate_with_progress<F>( &mut self, progress_callback: F, ) -> Result<usize, BatchError>
where F: FnMut(f64),

Generate keys with progress callback.

Source

pub fn generate(&mut self) -> Result<usize, BatchError>

Generate keys without progress callback.

Source

pub fn cleanup(&self) -> Result<(), BatchError>

Clean up checkpoint file after successful completion.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V