in crates/core/src/file_group/base_file.rs [54:78]
fn parse_file_name(file_name: &str) -> Result<(String, String, String, String)> {
let err_msg = format!("Failed to parse file name '{file_name}' for base file.");
let (stem, extension) = file_name
.rsplit_once('.')
.ok_or_else(|| CoreError::FileGroup(err_msg.clone()))?;
let parts: Vec<&str> = stem.split('_').collect();
let file_id = parts
.first()
.ok_or_else(|| CoreError::FileGroup(err_msg.clone()))?
.to_string();
let write_token = parts
.get(1)
.ok_or_else(|| CoreError::FileGroup(err_msg.clone()))?
.to_string();
let commit_timestamp = parts
.get(2)
.ok_or_else(|| CoreError::FileGroup(err_msg.clone()))?
.to_string();
Ok((
file_id,
write_token,
commit_timestamp,
extension.to_string(),
))
}