use core::num::NonZeroU32;
use pipecircuit::storage::query_workspace::{QueryChunk, QueryWorkspace};
use pipecircuit::storage::warp_table::{Capacity, WarpTable, WarpTableRow};
#[derive(WarpTableRow)]
struct Row {
#[index(range)]
rank: u64,
}
fn main() {
let mut table = WarpTable::<Row>::try_new(Capacity::new(NonZeroU32::MIN)).unwrap();
let _inserted = table.insert(Row { rank: 1 });
let mut chunks = [QueryChunk::EMPTY];
let mut scratch = QueryChunk::EMPTY;
let mut workspace = QueryWorkspace::new(1, &mut chunks, &mut scratch).unwrap_or_else(|_| std::process::abort());
let selection = table.query_memberships().find_rank_in(..).unwrap()
.in_workspace(workspace.membership().unwrap()).unwrap();
let _removed = table.remove(*table.ids().first().unwrap());
let _ = selection.rows().next();
}