Module 0x2::table_vec
A basic scalable vector library implemented using Table.
- Struct
TableVec
- Constants
- Function
empty
- Function
singleton
- Function
length
- Function
is_empty
- Function
borrow
- Function
push_back
- Function
borrow_mut
- Function
pop_back
- Function
destroy_empty
- Function
drop
- Function
swap
- Function
swap_remove
use 0x2::table;
use 0x2::tx_context;
Struct TableVec
struct TableVec<Element: store> has store
Fields
Constants
const EIndexOutOfBound: u64 = 0;
const ETableNonEmpty: u64 = 1;
Function empty
Create an empty TableVec.
public fun empty<Element: store>(ctx: &mut tx_context::TxContext): table_vec::TableVec<Element>
Implementation
Function singleton
Return a TableVec of size one containing element e.
public fun singleton<Element: store>(e: Element, ctx: &mut tx_context::TxContext): table_vec::TableVec<Element>
Implementation
Function length
Return the length of the TableVec.
public fun length<Element: store>(t: &table_vec::TableVec<Element>): u64
Implementation
Function is_empty
Return if the TableVec is empty or not.
public fun is_empty<Element: store>(t: &table_vec::TableVec<Element>): bool
Implementation
Function borrow
Acquire an immutable reference to the ith element of the TableVec t. Aborts if i is out of bounds.
public fun borrow<Element: store>(t: &table_vec::TableVec<Element>, i: u64): &Element
Implementation
Function push_back
Add element e to the end of the TableVec t.
public fun push_back<Element: store>(t: &mut table_vec::TableVec<Element>, e: Element)
Implementation
Function borrow_mut
Return a mutable reference to the ith element in the TableVec t. Aborts if i is out of bounds.
public fun borrow_mut<Element: store>(t: &mut table_vec::TableVec<Element>, i: u64): &mut Element
Implementation
Function pop_back
Pop an element from the end of TableVec t. Aborts if t is empty.
public fun pop_back<Element: store>(t: &mut table_vec::TableVec<Element>): Element
Implementation
Function destroy_empty
Destroy the TableVec t. Aborts if t is not empty.
public fun destroy_empty<Element: store>(t: table_vec::TableVec<Element>)
Implementation
Function drop
Drop a possibly non-empty TableVec t. Usable only if the value type Element has the drop ability
public fun drop<Element: drop, store>(t: table_vec::TableVec<Element>)
Implementation
Function swap
Swaps the elements at the ith and jth indices in the TableVec t. Aborts if i or j is out of bounds.
public fun swap<Element: store>(t: &mut table_vec::TableVec<Element>, i: u64, j: u64)
Implementation
Function swap_remove
Swap the ith element of the TableVec t with the last element and then pop the TableVec. This is O(1), but does not preserve ordering of elements in the TableVec. Aborts if i is out of bounds.
public fun swap_remove<Element: store>(t: &mut table_vec::TableVec<Element>, i: u64): Element