Skip to content

Latest commit

 

History

History
225 lines (105 loc) · 6.61 KB

table_vec.md

File metadata and controls

225 lines (105 loc) · 6.61 KB

Module 0x2::table_vec

A basic scalable vector library implemented using Table.

Struct TableVec

struct TableVec<Element: store> has store

Constants

const ErrorIndexOutOfBound: u64 = 1;

const ErrorTableNonEmpty: u64 = 2;

Function new

Create an empty TableVec.

public fun new<Element: store>(): table_vec::TableVec<Element>

Function singleton

Return a TableVec of size one containing element e.

public fun singleton<Element: store>(e: Element): table_vec::TableVec<Element>

Function length

Return the length of the TableVec.

public fun length<Element: store>(t: &table_vec::TableVec<Element>): u64

Function is_empty

Return if the TableVec is empty or not.

public fun is_empty<Element: store>(t: &table_vec::TableVec<Element>): bool

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

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)

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

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

Function destroy_empty

Destroy the TableVec t. Aborts if t is not empty.

public fun destroy_empty<Element: store>(t: table_vec::TableVec<Element>)

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>)

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)

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

Function contains

Return if the TableVec t contains the element at index i.

public fun contains<Element: store>(t: &table_vec::TableVec<Element>, i: u64): bool