MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / immutable_cursor

Function immutable_cursor

cranelift/bforest/src/map.rs:1366–1442  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1364
1365 #[test]
1366 fn immutable_cursor() {
1367 let f = &mut MapForest::<u32, f32>::new();
1368 let mut m = Map::<u32, f32>::new();
1369
1370 for i in 100..200 {
1371 m.insert(i, i as f32, f, &());
1372 }
1373
1374 let mut c = m.cursor(f, &());
1375
1376 let v = c.goto_first().unwrap();
1377 assert_eq!(v, 100.0);
1378 assert_eq!(c.key(), Some(100));
1379 assert_eq!(c.value(), Some(100.0));
1380
1381 let (k, v) = c.next().unwrap();
1382 assert_eq!(k, 101);
1383 assert_eq!(v, 101.0);
1384 assert_eq!(c.key(), Some(101));
1385 assert_eq!(c.value(), Some(101.0));
1386
1387 let (k, v) = c.next().unwrap();
1388 assert_eq!(k, 102);
1389 assert_eq!(v, 102.0);
1390 assert_eq!(c.key(), Some(102));
1391 assert_eq!(c.value(), Some(102.0));
1392
1393 let (k, v) = c.prev().unwrap();
1394 assert_eq!(k, 101);
1395 assert_eq!(v, 101.0);
1396 assert_eq!(c.key(), Some(101));
1397 assert_eq!(c.value(), Some(101.0));
1398
1399 let v = c.goto(175).unwrap();
1400 assert_eq!(v, 175.0);
1401 assert_eq!(c.key(), Some(175));
1402 assert_eq!(c.value(), Some(175.0));
1403
1404 let (k, v) = c.next().unwrap();
1405 assert_eq!(k, 176);
1406 assert_eq!(v, 176.0);
1407 assert_eq!(c.key(), Some(176));
1408 assert_eq!(c.value(), Some(176.0));
1409
1410 let (k, v) = c.prev().unwrap();
1411 assert_eq!(k, 175);
1412 assert_eq!(v, 175.0);
1413 assert_eq!(c.key(), Some(175));
1414 assert_eq!(c.value(), Some(175.0));
1415
1416 let v = c.goto(200);
1417 assert!(v.is_none());
1418 assert!(c.key().is_none());
1419 assert!(c.value().is_none());
1420
1421 for i in (100..200).rev() {
1422 let (k, v) = c.prev().unwrap();
1423 assert_eq!(k, i);

Callers

nothing calls this directly

Calls 8

newFunction · 0.50
insertMethod · 0.45
cursorMethod · 0.45
unwrapMethod · 0.45
goto_firstMethod · 0.45
nextMethod · 0.45
prevMethod · 0.45
gotoMethod · 0.45

Tested by

no test coverage detected