~/bend-docscommunity

vec.bend checks

raw source on the hub · import 0x9d83ddf966d11f828944383c8c9577cc/vec.bend as Vec

Vec: a growable array. push is amortized O(1): a full buffer doubles.

get, set and pop are one Array access. An index at or past the length answers None (get, pop) or leaves the vector as it was (set).

1 import
import Base

Types

type Vec source · line 7 · raw

@-T:Data -> Type

Templates

template Vec.new source · line 11 · raw

@-T:Data -> Vec<T>

template Vec.len source · line 14 · raw

@-T:Data -> @v:Vec<T> -> Pair(Vec<T>, U32)

template Vec.copy source · line 21 · raw

@-T:Data -> @fuel:Nat -> @+i:U32 -> @dst:Array<T> -> @r:Pair(Array<T>, T) -> Array<T>

template Vec.push.grow source · line 32 · raw

@-T:Data -> @full:Bool -> @+n:U32 -> @+x:T -> @buf:Array<T> -> @+cap:U32 -> Vec<T>

template Vec.push.at source · line 43 · raw

@-T:Data -> @+n:U32 -> @+x:T -> @bc:Pair(Array<T>, U32) -> Vec<T>

template Vec.push source · line 47 · raw

@-T:Data -> @v:Vec<T> -> @+x:T -> Vec<T>

template Vec.get.fin source · line 54 · raw

@-T:Data -> @n:U32 -> @r:Pair(Array<T>, T) -> Pair(Vec<T>, Maybe<&2, T>)

template Vec.get.if source · line 58 · raw

@-T:Data -> @ok:Bool -> @+n:U32 -> @buf:Array<T> -> @+i:U32 -> Pair(Vec<T>, Maybe<&2, T>)

template Vec.get source · line 67 · raw

@-T:Data -> @v:Vec<T> -> @+i:U32 -> Pair(Vec<T>, Maybe<&2, T>)

template Vec.set.if source · line 74 · raw

@-T:Data -> @ok:Bool -> @n:U32 -> @buf:Array<T> -> @i:U32 -> @x:T -> Vec<T>

template Vec.set source · line 83 · raw

@-T:Data -> @v:Vec<T> -> @+i:U32 -> @x:T -> Vec<T>

template Vec.pop.if source · line 90 · raw

@-T:Data -> @empty:Bool -> @+n:U32 -> @buf:Array<T> -> Pair(Vec<T>, Maybe<&2, T>)

template Vec.pop source · line 101 · raw

@-T:Data -> @v:Vec<T> -> Pair(Vec<T>, Maybe<&2, T>)

The last element, and the vector without it. The buffer keeps its size.

template Vec.to_list.go source · line 108 · raw

@-T:Data -> @fuel:Nat -> @+i:U32 -> @acc:List<&2, T> -> @r:Pair(Array<T>, T) -> List<&2, T>

template Vec.to_list source · line 120 · raw

@-T:Data -> @v:Vec<T> -> List<&2, T>

The elements, first to last.

template Vec.from_list.go source · line 128 · raw

@-T:Data -> @xs:List<&2, T> -> @v:Vec<T> -> Vec<T>

template Vec.from_list source · line 135 · raw

@-T:Data -> @xs:List<&2, T> -> Vec<T>