[−][src]Constant tari_storage::lmdb_store::db::INTEGERKEY
pub const INTEGERKEY: Flags;
Keys are binary integers in native byte order, either
libc::c_uint
or libc::size_t
, and will be sorted as such.
The keys must all be of the same size.
Example
use lmdb::unaligned as u; let db = lmdb::Database::open( &env, Some("reversed"), &lmdb::DatabaseOptions::new( lmdb::db::INTEGERKEY | lmdb::db::CREATE)).unwrap(); let txn = lmdb::WriteTransaction::new(&env).unwrap(); { let mut access = txn.access(); let f = lmdb::put::Flags::empty(); // Write the keys in native byte order. // Note that on little-endian systems this means a // byte-by-byte comparison would not order the keys the way // one might expect. access.put(&db, &42u32, "Fourty-two", f).unwrap(); access.put(&db, &65536u32, "65'536", f).unwrap(); access.put(&db, &0u32, "Zero", f).unwrap(); let mut cursor = txn.cursor(&db).unwrap(); // But because we used `INTEGERKEY`, they are in fact sorted // ascending by integer value. assert_eq!((u(&0u32), "Zero"), cursor.first(&access).unwrap()); assert_eq!((u(&42u32), "Fourty-two"), cursor.next(&access).unwrap()); assert_eq!((u(&65536u32), "65'536"), cursor.next(&access).unwrap()); } txn.commit().unwrap();