Tortuga Finance Docs
  • Overview
    • Liquid Staking on Aptos
  • Stake APT
    • Tutorial: Stake APT via Tortuga
    • Tutorial: Buy tAPT from DEX
    • Use tAPT
    • Fees
    • Before You Stake
  • For Validators
    • How It Works
    • How to Join
  • For Developers
    • Integration Resources
    • Tortuga <> Pyth
  • Protocol
    • Overview
    • Whitepaper
    • Governance
    • Tokenomics
    • Reference
      • helpers::circular_buffer
      • helpers::math
      • helpers::pool
      • helpers::stake_pool_helpers
      • helpers::iterable_table_custom
      • oracle::validator_states
      • delegation::delegation_state
      • delegation::delegation_service
      • tortuga::validator_router
      • tortuga::stake_router
      • governance::permissions
      • governance::utils
      • tortuga_governance::staked_aptos
      • tortuga_governance::tortuga_governance
    • Security Audits
Powered by GitBook
On this page
  • Module 0xc0ded0c0::iterable_table_custom
  • module helpers::iterable_table_custom
  • Struct IterableTableCustom
  • Function new
  • Function destroy_empty
  • Function add
  • Function remove
  • Function borrow
  • Function borrow_mut
  • Function length
  • Function empty
  • Function contains
  • Function head_key
  • Function tail_key
  • Function borrow_iter
  • Function borrow_iter_mut
  • Function remove_iter
  • Function append
  1. Protocol
  2. Reference

helpers::iterable_table_custom

Previoushelpers::stake_pool_helpersNextoracle::validator_states

Last updated 2 years ago

Module 0xc0ded0c0::iterable_table_custom

module helpers::iterable_table_custom

This module is a wrapper around aptos_std::iterable_table. This allows a quick change in data structure that Tortuga uses, in case is deemed to be not suitable at some point.

use 0x1::option;
use 0xc0ded0c0::iterable_table;

Struct IterableTableCustom

The iterable wrapper around value, points to previous and next key if any.

struct IterableTableCustom<K: copy, drop, store, V: store> has store
Fields

Function new

Create a new custom iterable table

public fun new<K: copy, drop, store, V: store>(): iterable_table_custom::IterableTableCustom<K, V>
Implementation
public fun new<K: copy + store + drop, V: store>(): IterableTableCustom<K, V> {
    IterableTableCustom {
        data: iterable_table::new<K, V>(),
    }
}

Function destroy_empty

Destroy a table. The table must be empty to succeed.

public fun destroy_empty<K: copy, drop, store, V: store>(table: iterable_table_custom::IterableTableCustom<K, V>)
Implementation
public fun destroy_empty<K: copy + store + drop, V: store>(table: IterableTableCustom<K, V>) {
    let IterableTableCustom { data: data} = table;
    iterable_table::destroy_empty(data);
}

Function add

Add a new entry to the table. Aborts if an entry for this key already exists.

public fun add<K: copy, drop, store, V: store>(table: &mut iterable_table_custom::IterableTableCustom<K, V>, key: K, val: V)
Implementation
public fun add<K: copy + store + drop, V: store>(table: &mut IterableTableCustom<K, V>, key: K, val: V) {
    iterable_table::add(&mut table.data, key, val);
}

Function remove

public fun remove<K: copy, drop, store, V: store>(table: &mut iterable_table_custom::IterableTableCustom<K, V>, key: K): V
Implementation
public fun remove<K: copy + store + drop, V: store>(table: &mut IterableTableCustom<K, V>, key: K): V {
    iterable_table::remove(&mut table.data, key)
}

Function borrow

Acquire an immutable reference to the value which key maps to. Aborts if there is no entry for key.

public fun borrow<K: copy, drop, store, V: store>(table: &iterable_table_custom::IterableTableCustom<K, V>, key: K): &V
Implementation
public fun borrow<K: copy + store + drop, V: store>(table: &IterableTableCustom<K, V>, key: K): &V {
    iterable_table::borrow(&table.data, key)
}

Function borrow_mut

Acquire a mutable reference to the value which key maps to. Aborts if there is no entry for key.

public fun borrow_mut<K: copy, drop, store, V: store>(table: &mut iterable_table_custom::IterableTableCustom<K, V>, key: K): &mut V
Implementation
public fun borrow_mut<K: copy + store + drop, V: store>(table: &mut IterableTableCustom<K, V>, key: K): &mut V {
    iterable_table::borrow_mut(&mut table.data, key)
}

Function length

Returns the length of the table, i.e. the number of entries.

public fun length<K: copy, drop, store, V: store>(table: &iterable_table_custom::IterableTableCustom<K, V>): u64
Implementation
public fun length<K: copy + store + drop, V: store>(table: &IterableTableCustom<K, V>): u64 {
    iterable_table::length(&table.data)
}

Function empty

Returns true if this table is empty.

public fun empty<K: copy, drop, store, V: store>(table: &iterable_table_custom::IterableTableCustom<K, V>): bool
Implementation
public fun empty<K: copy + store + drop, V: store>(table: &IterableTableCustom<K, V>): bool {
    iterable_table::empty(&table.data)
}

Function contains

public fun contains<K: copy, drop, store, V: store>(table: &iterable_table_custom::IterableTableCustom<K, V>, key: K): bool
Implementation
public fun contains<K: copy + store + drop, V: store>(table: &IterableTableCustom<K, V>, key: K): bool {
    iterable_table::contains(&table.data, key)
}

Function head_key

Iterable API. Returns the key of the head for iteration.

public fun head_key<K: copy, drop, store, V: store>(table: &iterable_table_custom::IterableTableCustom<K, V>): option::Option<K>
Implementation
public fun head_key<K: copy + store + drop, V: store>(table: &IterableTableCustom<K, V>): Option<K> {
    iterable_table::head_key(&table.data)
}

Function tail_key

Returns the key of the tail for iteration.

public fun tail_key<K: copy, drop, store, V: store>(table: &iterable_table_custom::IterableTableCustom<K, V>): option::Option<K>
Implementation
public fun tail_key<K: copy + store + drop, V: store>(table: &IterableTableCustom<K, V>): Option<K> {
    iterable_table::tail_key(&table.data)
}

Function borrow_iter

Acquire an immutable reference to the IterableValue which key maps to. Aborts if there is no entry for key.

public fun borrow_iter<K: copy, drop, store, V: store>(table: &iterable_table_custom::IterableTableCustom<K, V>, key: K): (&V, option::Option<K>, option::Option<K>)
Implementation
public fun borrow_iter<K: copy + store + drop, V: store>(table: &IterableTableCustom<K, V>, key: K): (&V, Option<K>, Option<K>) {
    iterable_table::borrow_iter(&table.data, key)
}

Function borrow_iter_mut

Acquire a mutable reference to the value and previous/next key which key maps to. Aborts if there is no entry for key.

public fun borrow_iter_mut<K: copy, drop, store, V: store>(table: &mut iterable_table_custom::IterableTableCustom<K, V>, key: K): (&mut V, option::Option<K>, option::Option<K>)
Implementation
public fun borrow_iter_mut<K: copy + store + drop, V: store>(table: &mut IterableTableCustom<K, V>, key: K): (&mut V, Option<K>, Option<K>) {
    iterable_table::borrow_iter_mut(&mut table.data, key)
}

Function remove_iter

public fun remove_iter<K: copy, drop, store, V: store>(table: &mut iterable_table_custom::IterableTableCustom<K, V>, key: K): (V, option::Option<K>, option::Option<K>)
Implementation
public fun remove_iter<K: copy + store + drop, V: store>(table: &mut IterableTableCustom<K, V>, key: K): (V, Option<K>, Option<K>) {
    iterable_table::remove_iter(&mut table.data, key)
}

Function append

Remove all items from v2 and append to v1.

public fun append<K: copy, drop, store, V: store>(v1: &mut iterable_table_custom::IterableTableCustom<K, V>, v2: &mut iterable_table_custom::IterableTableCustom<K, V>)
Implementation
public fun append<K: copy + store + drop, V: store>(v1: &mut IterableTableCustom<K, V>, v2: &mut IterableTableCustom<K, V>) {
    iterable_table::append(&mut v1.data, &mut v2.data);
}

data: <K, V>

Remove from and return the value which key maps to. Aborts if there is no entry for key.

Returns true iff contains an entry for key.

Remove from and return the value and previous/next key which key maps to. Aborts if there is no entry for key.

iterable_table::IterableTable
table
table
table
iterable_table
module helpers::iterable_table_custom
Struct IterableTableCustom
Function new
Function destroy_empty
Function add
Function remove
Function borrow
Function borrow_mut
Function length
Function empty
Function contains
Function head_key
Function tail_key
Function borrow_iter
Function borrow_iter_mut
Function remove_iter
Function append