rarity,
name,
});
}
Ok(Box::new(outputs))
}
Some(crate::index::List::Spent) => Err(anyhow!("output spent.")),
None => Err(anyhow!("output not found")),
}
}
}
fn list(outpoint: OutPoint, ranges: Vec<(u64, u64)>) -> Vec<Output> {
let mut offset = 0;
ranges
.into_iter()
.map(|(start, end)| {
let size = end - start;
let output = Output {
output: outpoint,
start,
end,
size,
offset,
name: Sat(start).name(),
rarity: Sat(start).rarity(),
};
offset += size;
output
})
.collect()
}
#[cfg(test)]
mod tests {
use super::*;
fn output(
output: OutPoint,
start: u64,
end: u64,
size: u64,
offset: u64,
rarity: Rarity,
name: String,
) -> super::Output {
super::Output {
output,
start,
end,
size,
offset,
name,
rarity,
}
}
#[test]
fn list_ranges() {
let outpoint =