pub struct ResumeCheckpoint {
pub snapshot_id: String,
pub chunk_id: String,
pub line_offset: u64,
pub articles_processed: u64,
pub timestamp: DateTime<Utc>,
}Expand description
Resume checkpoint for crash recovery.
Stores the current position in a snapshot download, allowing processing to be resumed after interruptions.
§Example
use wme_stream::ResumeCheckpoint;
let checkpoint = ResumeCheckpoint::new(
"enwiki_namespace_0",
"chunk_0",
5000,
1000,
);
assert_eq!(checkpoint.snapshot_id, "enwiki_namespace_0");
assert_eq!(checkpoint.line_offset, 5000);Fields§
§snapshot_id: StringSnapshot identifier (e.g., “enwiki_namespace_0”)
chunk_id: StringChunk identifier (e.g., “chunk_0”)
line_offset: u64Line offset within chunk (NDJSON line number)
articles_processed: u64Number of articles processed so far
timestamp: DateTime<Utc>Checkpoint timestamp
Implementations§
Source§impl ResumeCheckpoint
impl ResumeCheckpoint
Sourcepub fn new(
snapshot_id: impl Into<String>,
chunk_id: impl Into<String>,
line_offset: u64,
articles_processed: u64,
) -> Self
pub fn new( snapshot_id: impl Into<String>, chunk_id: impl Into<String>, line_offset: u64, articles_processed: u64, ) -> Self
Create a new checkpoint with current timestamp.
§Arguments
snapshot_id- The snapshot being processedchunk_id- The current chunkline_offset- Current line position in NDJSON filearticles_processed- Total articles processed
§Example
use wme_stream::ResumeCheckpoint;
let checkpoint = ResumeCheckpoint::new(
"enwiki_namespace_0",
"chunk_0",
5000,
1000,
);Sourcepub async fn save(&self, path: impl Into<PathBuf>) -> Result<(), StreamError>
pub async fn save(&self, path: impl Into<PathBuf>) -> Result<(), StreamError>
Save checkpoint to disk as JSON.
The file is named {snapshot_id}.checkpoint.json and stored
in the specified directory.
§Arguments
path- Directory to save checkpoint (or full file path)
§Errors
Returns StreamError::Io if file write fails.
§Example
use wme_stream::ResumeCheckpoint;
let checkpoint = ResumeCheckpoint::new("enwiki", "chunk_0", 100, 50);
checkpoint.save("/data/checkpoints/").await?;Sourcepub async fn load(path: impl Into<PathBuf>) -> Result<Self, StreamError>
pub async fn load(path: impl Into<PathBuf>) -> Result<Self, StreamError>
Load checkpoint from disk.
§Arguments
path- Path to checkpoint JSON file
§Errors
Returns StreamError::Resume if:
- File not found
- Invalid JSON
- Missing fields
§Example
use wme_stream::ResumeCheckpoint;
let checkpoint = ResumeCheckpoint::load(
"/data/checkpoints/enwiki.checkpoint.json"
).await?;
println!("Resuming from line {}", checkpoint.line_offset);Sourcepub fn checkpoint_path(
base_dir: impl Into<PathBuf>,
snapshot_id: &str,
) -> PathBuf
pub fn checkpoint_path( base_dir: impl Into<PathBuf>, snapshot_id: &str, ) -> PathBuf
Get checkpoint file path for a snapshot.
Generates a standard checkpoint filename in the specified directory.
§Arguments
base_dir- Directory for checkpoint filessnapshot_id- Snapshot identifier
§Returns
Path like {base_dir}/{snapshot_id}.checkpoint.json
§Example
use wme_stream::ResumeCheckpoint;
use std::path::PathBuf;
let path = ResumeCheckpoint::checkpoint_path("/data/checkpoints", "enwiki");
assert_eq!(path, PathBuf::from("/data/checkpoints/enwiki.checkpoint.json"));Trait Implementations§
Source§impl Clone for ResumeCheckpoint
impl Clone for ResumeCheckpoint
Source§fn clone(&self) -> ResumeCheckpoint
fn clone(&self) -> ResumeCheckpoint
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ResumeCheckpoint
impl Debug for ResumeCheckpoint
Source§impl<'de> Deserialize<'de> for ResumeCheckpoint
impl<'de> Deserialize<'de> for ResumeCheckpoint
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for ResumeCheckpoint
impl PartialEq for ResumeCheckpoint
Source§impl Serialize for ResumeCheckpoint
impl Serialize for ResumeCheckpoint
impl StructuralPartialEq for ResumeCheckpoint
Auto Trait Implementations§
impl Freeze for ResumeCheckpoint
impl RefUnwindSafe for ResumeCheckpoint
impl Send for ResumeCheckpoint
impl Sync for ResumeCheckpoint
impl Unpin for ResumeCheckpoint
impl UnsafeUnpin for ResumeCheckpoint
impl UnwindSafe for ResumeCheckpoint
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