Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API

vector

Module0x0000…0001
Move path
0x0000…0001::vector
Functions
2020 public, 0 entry
Structs
0
Friend modules
None
vector

Bytecode525 lines

The on-chain disassembly. Offsets are bytecode positions within each function.

// Move bytecode v7
module 1.vector {
 
native public length<Ty0>(Arg0: &vector<Ty0>): u64;
 
native public borrow<Ty0>(Arg0: &vector<Ty0>, Arg1: u64): &Ty0;
 
native public push_back<Ty0>(Arg0: &mut vector<Ty0>, Arg1: Ty0);
 
native public borrow_mut<Ty0>(Arg0: &mut vector<Ty0>, Arg1: u64): &mut Ty0;
 
native public pop_back<Ty0>(Arg0: &mut vector<Ty0>): Ty0;
 
native public destroy_empty<Ty0>(Arg0: vector<Ty0>);
 
native public swap<Ty0>(Arg0: &mut vector<Ty0>, Arg1: u64, Arg2: u64);
 
public reverse<Ty0>(Arg0: &mut vector<Ty0>) {
L1: loc0: u64
L2: loc1: u64
L3: loc2: u64
B0:
0CopyLoc[0](Arg0: &mut vector<Ty0>)
1FreezeRef
2VecLen(9)
3StLoc[3](loc2: u64)
4CopyLoc[3](loc2: u64)
5LdU64(0)
6Eq
7BrFalse(11)
B1:
8MoveLoc[0](Arg0: &mut vector<Ty0>)
9Pop
10Ret
B2:
11LdU64(0)
12StLoc[2](loc1: u64)
13MoveLoc[3](loc2: u64)
14LdU64(1)
15Sub
16StLoc[1](loc0: u64)
B3:
17CopyLoc[2](loc1: u64)
18CopyLoc[1](loc0: u64)
19Lt
20BrFalse(34)
B4:
21CopyLoc[0](Arg0: &mut vector<Ty0>)
22CopyLoc[2](loc1: u64)
23CopyLoc[1](loc0: u64)
24VecSwap(9)
25MoveLoc[2](loc1: u64)
26LdU64(1)
27Add
28StLoc[2](loc1: u64)
29MoveLoc[1](loc0: u64)
30LdU64(1)
31Sub
32StLoc[1](loc0: u64)
33Branch(17)
B5:
34MoveLoc[0](Arg0: &mut vector<Ty0>)
35Pop
36Ret
}
 
public append<Ty0>(Arg0: &mut vector<Ty0>, Arg1: vector<Ty0>) {
L2: loc0: u64
L3: loc1: Ty0
L4: loc2: u64
L5: loc3: u64
L6: loc4: vector<Ty0>
B0:
0MoveLoc[1](Arg1: vector<Ty0>)
1StLoc[6](loc4: vector<Ty0>)
2MutBorrowLoc[6](loc4: vector<Ty0>)
3Call reverse<Ty0>(&mut vector<Ty0>)
4ImmBorrowLoc[6](loc4: vector<Ty0>)
5VecLen(9)
6StLoc[2](loc0: u64)
7LdU64(0)
8StLoc[4](loc2: u64)
9MoveLoc[2](loc0: u64)
10StLoc[5](loc3: u64)
B1:
11CopyLoc[4](loc2: u64)
12CopyLoc[5](loc3: u64)
13Lt
14BrFalse(28)
B2:
15CopyLoc[4](loc2: u64)
16Pop
17MutBorrowLoc[6](loc4: vector<Ty0>)
18VecPopBack(9)
19StLoc[3](loc1: Ty0)
20CopyLoc[0](Arg0: &mut vector<Ty0>)
21MoveLoc[3](loc1: Ty0)
22VecPushBack(9)
23MoveLoc[4](loc2: u64)
24LdU64(1)
25Add
26StLoc[4](loc2: u64)
27Branch(11)
B3:
28MoveLoc[0](Arg0: &mut vector<Ty0>)
29Pop
30MoveLoc[6](loc4: vector<Ty0>)
31VecUnpack(9, 0)
32Ret
}
 
public is_empty<Ty0>(Arg0: &vector<Ty0>): bool {
B0:
0MoveLoc[0](Arg0: &vector<Ty0>)
1VecLen(9)
2LdU64(0)
3Eq
4Ret
}
 
public contains<Ty0>(Arg0: &vector<Ty0>, Arg1: &Ty0): bool {
L2: loc0: u64
L3: loc1: u64
B0:
0LdU64(0)
1StLoc[2](loc0: u64)
2CopyLoc[0](Arg0: &vector<Ty0>)
3VecLen(9)
4StLoc[3](loc1: u64)
B1:
5CopyLoc[2](loc0: u64)
6CopyLoc[3](loc1: u64)
7Lt
8BrFalse(27)
B2:
9Branch(10)
B3:
10CopyLoc[0](Arg0: &vector<Ty0>)
11CopyLoc[2](loc0: u64)
12VecImmBorrow(9)
13CopyLoc[1](Arg1: &Ty0)
14Eq
15BrFalse(22)
B4:
16MoveLoc[0](Arg0: &vector<Ty0>)
17Pop
18MoveLoc[1](Arg1: &Ty0)
19Pop
20LdTrue
21Ret
B5:
22MoveLoc[2](loc0: u64)
23LdU64(1)
24Add
25StLoc[2](loc0: u64)
26Branch(5)
B6:
27MoveLoc[0](Arg0: &vector<Ty0>)
28Pop
29MoveLoc[1](Arg1: &Ty0)
30Pop
31LdFalse
32Ret
}
 
public index_of<Ty0>(Arg0: &vector<Ty0>, Arg1: &Ty0): bool * u64 {
L2: loc0: u64
L3: loc1: u64
B0:
0LdU64(0)
1StLoc[2](loc0: u64)
2CopyLoc[0](Arg0: &vector<Ty0>)
3VecLen(9)
4StLoc[3](loc1: u64)
B1:
5CopyLoc[2](loc0: u64)
6CopyLoc[3](loc1: u64)
7Lt
8BrFalse(28)
B2:
9Branch(10)
B3:
10CopyLoc[0](Arg0: &vector<Ty0>)
11CopyLoc[2](loc0: u64)
12VecImmBorrow(9)
13CopyLoc[1](Arg1: &Ty0)
14Eq
15BrFalse(23)
B4:
16MoveLoc[0](Arg0: &vector<Ty0>)
17Pop
18MoveLoc[1](Arg1: &Ty0)
19Pop
20LdTrue
21MoveLoc[2](loc0: u64)
22Ret
B5:
23MoveLoc[2](loc0: u64)
24LdU64(1)
25Add
26StLoc[2](loc0: u64)
27Branch(5)
B6:
28MoveLoc[0](Arg0: &vector<Ty0>)
29Pop
30MoveLoc[1](Arg1: &Ty0)
31Pop
32LdFalse
33LdU64(0)
34Ret
}
 
public remove<Ty0>(Arg0: &mut vector<Ty0>, Arg1: u64): Ty0 {
L2: loc0: u64
L3: loc1: &mut vector<Ty0>
L4: loc2: u64
B0:
0CopyLoc[0](Arg0: &mut vector<Ty0>)
1FreezeRef
2VecLen(9)
3StLoc[4](loc2: u64)
4CopyLoc[1](Arg1: u64)
5CopyLoc[4](loc2: u64)
6Ge
7BrFalse(12)
B1:
8MoveLoc[0](Arg0: &mut vector<Ty0>)
9Pop
10LdConst[0](u64: 131072)
11Abort
B2:
12MoveLoc[4](loc2: u64)
13LdU64(1)
14Sub
15StLoc[4](loc2: u64)
B3:
16CopyLoc[1](Arg1: u64)
17CopyLoc[4](loc2: u64)
18Lt
19BrFalse(33)
B4:
20CopyLoc[0](Arg0: &mut vector<Ty0>)
21StLoc[3](loc1: &mut vector<Ty0>)
22CopyLoc[1](Arg1: u64)
23StLoc[2](loc0: u64)
24MoveLoc[1](Arg1: u64)
25LdU64(1)
26Add
27StLoc[1](Arg1: u64)
28MoveLoc[3](loc1: &mut vector<Ty0>)
29MoveLoc[2](loc0: u64)
30CopyLoc[1](Arg1: u64)
31VecSwap(9)
32Branch(16)
B5:
33MoveLoc[0](Arg0: &mut vector<Ty0>)
34VecPopBack(9)
35Ret
}
 
public insert<Ty0>(Arg0: &mut vector<Ty0>, Arg1: Ty0, Arg2: u64) {
L3: loc0: u64
B0:
0CopyLoc[0](Arg0: &mut vector<Ty0>)
1FreezeRef
2VecLen(9)
3StLoc[3](loc0: u64)
4CopyLoc[2](Arg2: u64)
5CopyLoc[3](loc0: u64)
6Gt
7BrFalse(12)
B1:
8MoveLoc[0](Arg0: &mut vector<Ty0>)
9Pop
10LdConst[0](u64: 131072)
11Abort
B2:
12CopyLoc[0](Arg0: &mut vector<Ty0>)
13MoveLoc[1](Arg1: Ty0)
14VecPushBack(9)
B3:
15CopyLoc[2](Arg2: u64)
16CopyLoc[3](loc0: u64)
17Lt
18BrFalse(28)
B4:
19CopyLoc[0](Arg0: &mut vector<Ty0>)
20CopyLoc[2](Arg2: u64)
21CopyLoc[3](loc0: u64)
22VecSwap(9)
23MoveLoc[2](Arg2: u64)
24LdU64(1)
25Add
26StLoc[2](Arg2: u64)
27Branch(15)
B5:
28MoveLoc[0](Arg0: &mut vector<Ty0>)
29Pop
30Ret
}
 
public swap_remove<Ty0>(Arg0: &mut vector<Ty0>, Arg1: u64): Ty0 {
L2: loc0: u64
B0:
0CopyLoc[0](Arg0: &mut vector<Ty0>)
1FreezeRef
2VecLen(9)
3LdU64(0)
4Neq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut vector<Ty0>)
8Pop
9LdConst[0](u64: 131072)
10Abort
B3:
11CopyLoc[0](Arg0: &mut vector<Ty0>)
12FreezeRef
13VecLen(9)
14LdU64(1)
15Sub
16StLoc[2](loc0: u64)
17CopyLoc[0](Arg0: &mut vector<Ty0>)
18MoveLoc[1](Arg1: u64)
19MoveLoc[2](loc0: u64)
20VecSwap(9)
21MoveLoc[0](Arg0: &mut vector<Ty0>)
22VecPopBack(9)
23Ret
}
 
public skip<Ty0: drop>(Arg0: vector<Ty0>, Arg1: u64): vector<Ty0> {
L2: loc0: u64
L3: loc1: Ty0
L4: loc2: &mut vector<Ty0>
L5: loc3: u64
L6: loc4: u64
L7: loc5: u64
L8: loc6: vector<Ty0>
L9: loc7: u64
L10: loc8: vector<Ty0>
B0:
0ImmBorrowLoc[0](Arg0: vector<Ty0>)
1VecLen(9)
2StLoc[7](loc5: u64)
3CopyLoc[1](Arg1: u64)
4CopyLoc[7](loc5: u64)
5Ge
6BrFalse(9)
B1:
7VecPack(9, 0)
8Ret
B2:
9VecPack(9, 0)
10StLoc[10](loc8: vector<Ty0>)
11MoveLoc[7](loc5: u64)
12MoveLoc[1](Arg1: u64)
13Sub
14StLoc[2](loc0: u64)
15LdU64(0)
16StLoc[6](loc4: u64)
17MoveLoc[2](loc0: u64)
18StLoc[9](loc7: u64)
B3:
19CopyLoc[6](loc4: u64)
20CopyLoc[9](loc7: u64)
21Lt
22BrFalse(40)
B4:
23CopyLoc[6](loc4: u64)
24StLoc[5](loc3: u64)
25MutBorrowLoc[10](loc8: vector<Ty0>)
26StLoc[4](loc2: &mut vector<Ty0>)
27MoveLoc[5](loc3: u64)
28Pop
29MutBorrowLoc[0](Arg0: vector<Ty0>)
30VecPopBack(9)
31StLoc[3](loc1: Ty0)
32MoveLoc[4](loc2: &mut vector<Ty0>)
33MoveLoc[3](loc1: Ty0)
34VecPushBack(9)
35MoveLoc[6](loc4: u64)
36LdU64(1)
37Add
38StLoc[6](loc4: u64)
39Branch(19)
B5:
40MoveLoc[10](loc8: vector<Ty0>)
41StLoc[8](loc6: vector<Ty0>)
42MutBorrowLoc[8](loc6: vector<Ty0>)
43Call reverse<Ty0>(&mut vector<Ty0>)
44MoveLoc[8](loc6: vector<Ty0>)
45Ret
}
 
public take<Ty0: drop>(Arg0: vector<Ty0>, Arg1: u64): vector<Ty0> {
L2: loc0: u64
L3: loc1: Ty0
L4: loc2: &mut vector<Ty0>
L5: loc3: u64
L6: loc4: u64
L7: loc5: u64
L8: loc6: vector<Ty0>
B0:
0CopyLoc[1](Arg1: u64)
1ImmBorrowLoc[0](Arg0: vector<Ty0>)
2VecLen(9)
3Le
4BrFalse(6)
B1:
5Branch(8)
B2:
6LdU64(13906834883012984831)
7Abort
B3:
8CopyLoc[1](Arg1: u64)
9ImmBorrowLoc[0](Arg0: vector<Ty0>)
10VecLen(9)
11Eq
12BrFalse(15)
B4:
13MoveLoc[0](Arg0: vector<Ty0>)
14Ret
B5:
15MutBorrowLoc[0](Arg0: vector<Ty0>)
16Call reverse<Ty0>(&mut vector<Ty0>)
17VecPack(9, 0)
18StLoc[8](loc6: vector<Ty0>)
19MoveLoc[1](Arg1: u64)
20StLoc[2](loc0: u64)
21LdU64(0)
22StLoc[6](loc4: u64)
23MoveLoc[2](loc0: u64)
24StLoc[7](loc5: u64)
B6:
25CopyLoc[6](loc4: u64)
26CopyLoc[7](loc5: u64)
27Lt
28BrFalse(46)
B7:
29CopyLoc[6](loc4: u64)
30StLoc[5](loc3: u64)
31MutBorrowLoc[8](loc6: vector<Ty0>)
32StLoc[4](loc2: &mut vector<Ty0>)
33MoveLoc[5](loc3: u64)
34Pop
35MutBorrowLoc[0](Arg0: vector<Ty0>)
36VecPopBack(9)
37StLoc[3](loc1: Ty0)
38MoveLoc[4](loc2: &mut vector<Ty0>)
39MoveLoc[3](loc1: Ty0)
40VecPushBack(9)
41MoveLoc[6](loc4: u64)
42LdU64(1)
43Add
44StLoc[6](loc4: u64)
45Branch(25)
B8:
46MoveLoc[8](loc6: vector<Ty0>)
47Ret
}
 
public flatten<Ty0>(Arg0: vector<vector<Ty0>>): vector<Ty0> {
L1: loc0: u64
L2: loc1: u64
L3: loc2: vector<Ty0>
L4: loc3: u64
L5: loc4: vector<Ty0>
L6: loc5: vector<vector<Ty0>>
B0:
0VecPack(9, 0)
1StLoc[3](loc2: vector<Ty0>)
2MoveLoc[0](Arg0: vector<vector<Ty0>>)
3StLoc[6](loc5: vector<vector<Ty0>>)
4MutBorrowLoc[6](loc5: vector<vector<Ty0>>)
5Call reverse<vector<Ty0>>(&mut vector<vector<Ty0>>)
6ImmBorrowLoc[6](loc5: vector<vector<Ty0>>)
7VecLen(10)
8StLoc[1](loc0: u64)
9LdU64(0)
10StLoc[2](loc1: u64)
11MoveLoc[1](loc0: u64)
12StLoc[4](loc3: u64)
B1:
13CopyLoc[2](loc1: u64)
14CopyLoc[4](loc3: u64)
15Lt
16BrFalse(30)
B2:
17CopyLoc[2](loc1: u64)
18Pop
19MutBorrowLoc[6](loc5: vector<vector<Ty0>>)
20VecPopBack(10)
21StLoc[5](loc4: vector<Ty0>)
22MutBorrowLoc[3](loc2: vector<Ty0>)
23MoveLoc[5](loc4: vector<Ty0>)
24Call append<Ty0>(&mut vector<Ty0>, vector<Ty0>)
25MoveLoc[2](loc1: u64)
26LdU64(1)
27Add
28StLoc[2](loc1: u64)
29Branch(13)
B3:
30MoveLoc[6](loc5: vector<vector<Ty0>>)
31VecUnpack(10, 0)
32MoveLoc[3](loc2: vector<Ty0>)
33Ret
}
 
native public empty<Ty0>(): vector<Ty0>;
 
public singleton<Ty0>(Arg0: Ty0): vector<Ty0> {
B0:
0MoveLoc[0](Arg0: Ty0)
1VecPack(9, 1)
2Ret
}
 
Constants [
0 => u64: 131072
]
}