vec.bend checks
raw source on the hub · import 0x620317aa272e53852c5b5baae68a727b/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
VNil@-T:Data -> Vec<T>
Vec@-T:Data -> @len:U32 -> @buf:Array<T> -> Vec<T>
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>