MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / parse_change_hash

Function parse_change_hash

atomic-cli/src/commands/insert.rs:635–659  ·  view source on GitHub ↗

Parse a change hash from a string (full or abbreviated).

(repo: &Repository, hash_str: &str)

Source from the content-addressed store, hash-verified

633
634/// Parse a change hash from a string (full or abbreviated).
635fn parse_change_hash(repo: &Repository, hash_str: &str) -> CliResult<Hash> {
636 // Try to parse as full hash first
637 if let Some(hash) = Hash::from_base32(hash_str.as_bytes()) {
638 return Ok(hash);
639 }
640
641 // Try to find by prefix
642 if hash_str.len() >= 2 {
643 // Look through recent changes to find a match
644 match repo.find_change_by_prefix(hash_str) {
645 Ok(Some(hash)) => return Ok(hash),
646 Ok(None) => {}
647 Err(_e) => {
648 // Check if it's an ambiguous hash error
649 return Err(CliError::AmbiguousHash {
650 hash: hash_str.to_string(),
651 });
652 }
653 }
654 }
655
656 Err(CliError::ChangeNotFound {
657 hash: hash_str.to_string(),
658 })
659}
660
661/// Print the outcome of a single insert operation.
662fn print_insert_outcome(

Callers 2

run_single_insertFunction · 0.70
run_change_insertFunction · 0.70

Calls 3

find_change_by_prefixMethod · 0.80
as_bytesMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected