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

API

vec_set

Module0x0000…0002
Move path
0x0000…0002::vec_set
Functions
1111 public, 0 entry
Structs
1
Friend modules
None
vec_set

Bytecode280 lines

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

// Move bytecode v7
module 2.vec_set {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
 
struct VecSet<Ty0: copy + drop> has copy, drop, store {
contents: vector<Ty0>
}
 
public empty<Ty0: copy + drop>(): VecSet<Ty0> {
B0:
0VecPack(2, 0)
1PackGeneric[0](VecSet<Ty0>)
2Ret
}
 
public singleton<Ty0: copy + drop>(Arg0: Ty0): VecSet<Ty0> {
B0:
0MoveLoc[0](Arg0: Ty0)
1VecPack(2, 1)
2PackGeneric[0](VecSet<Ty0>)
3Ret
}
 
public insert<Ty0: copy + drop>(Arg0: &mut VecSet<Ty0>, Arg1: Ty0) {
B0:
0CopyLoc[0](Arg0: &mut VecSet<Ty0>)
1FreezeRef
2ImmBorrowLoc[1](Arg1: Ty0)
3Call contains<Ty0>(&VecSet<Ty0>, &Ty0): bool
4Not
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut VecSet<Ty0>)
8Pop
9LdConst[0](u64: 0)
10Abort
B3:
11MoveLoc[0](Arg0: &mut VecSet<Ty0>)
12MutBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
13MoveLoc[1](Arg1: Ty0)
14VecPushBack(2)
15Ret
}
 
public remove<Ty0: copy + drop>(Arg0: &mut VecSet<Ty0>, Arg1: &Ty0) {
L2: loc0: u64
L3: loc1: Option<u64>
L4: loc2: u64
L5: loc3: u64
L6: loc4: u64
L7: loc5: Option<u64>
L8: loc6: u64
L9: loc7: &vector<Ty0>
B0:
0CopyLoc[0](Arg0: &mut VecSet<Ty0>)
1ImmBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
2StLoc[9](loc7: &vector<Ty0>)
3CopyLoc[9](loc7: &vector<Ty0>)
4VecLen(2)
5StLoc[2](loc0: u64)
6LdU64(0)
7StLoc[4](loc2: u64)
8MoveLoc[2](loc0: u64)
9StLoc[8](loc6: u64)
B1:
10CopyLoc[4](loc2: u64)
11CopyLoc[8](loc6: u64)
12Lt
13BrFalse(35)
B2:
14CopyLoc[4](loc2: u64)
15StLoc[5](loc3: u64)
16CopyLoc[9](loc7: &vector<Ty0>)
17CopyLoc[5](loc3: u64)
18VecImmBorrow(2)
19CopyLoc[1](Arg1: &Ty0)
20Eq
21BrFalse(30)
B3:
22MoveLoc[9](loc7: &vector<Ty0>)
23Pop
24MoveLoc[1](Arg1: &Ty0)
25Pop
26MoveLoc[5](loc3: u64)
27Call option::some<u64>(u64): Option<u64>
28StLoc[3](loc1: Option<u64>)
29Branch(41)
B4:
30MoveLoc[4](loc2: u64)
31LdU64(1)
32Add
33StLoc[4](loc2: u64)
34Branch(10)
B5:
35MoveLoc[9](loc7: &vector<Ty0>)
36Pop
37MoveLoc[1](Arg1: &Ty0)
38Pop
39Call option::none<u64>(): Option<u64>
40StLoc[3](loc1: Option<u64>)
B6:
41MoveLoc[3](loc1: Option<u64>)
42StLoc[7](loc5: Option<u64>)
43ImmBorrowLoc[7](loc5: Option<u64>)
44Call option::is_some<u64>(&Option<u64>): bool
45BrFalse(47)
B7:
46Branch(53)
B8:
47MoveLoc[0](Arg0: &mut VecSet<Ty0>)
48Pop
49MoveLoc[7](loc5: Option<u64>)
50Call option::destroy_none<u64>(Option<u64>)
51LdConst[1](u64: 1)
52Abort
B9:
53MoveLoc[7](loc5: Option<u64>)
54Call option::destroy_some<u64>(Option<u64>): u64
55StLoc[6](loc4: u64)
56MoveLoc[0](Arg0: &mut VecSet<Ty0>)
57MutBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
58MoveLoc[6](loc4: u64)
59Call vector::remove<Ty0>(&mut vector<Ty0>, u64): Ty0
60Pop
61Ret
}
 
public contains<Ty0: copy + drop>(Arg0: &VecSet<Ty0>, Arg1: &Ty0): bool {
L2: loc0: u64
L3: loc1: bool
L4: loc2: u64
L5: loc3: u64
L6: loc4: u64
L7: loc5: &vector<Ty0>
B0:
0MoveLoc[0](Arg0: &VecSet<Ty0>)
1ImmBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
2StLoc[7](loc5: &vector<Ty0>)
3CopyLoc[7](loc5: &vector<Ty0>)
4VecLen(2)
5StLoc[2](loc0: u64)
6LdU64(0)
7StLoc[4](loc2: u64)
8MoveLoc[2](loc0: u64)
9StLoc[6](loc4: u64)
B1:
10CopyLoc[4](loc2: u64)
11CopyLoc[6](loc4: u64)
12Lt
13BrFalse(34)
B2:
14CopyLoc[4](loc2: u64)
15StLoc[5](loc3: u64)
16CopyLoc[7](loc5: &vector<Ty0>)
17MoveLoc[5](loc3: u64)
18VecImmBorrow(2)
19CopyLoc[1](Arg1: &Ty0)
20Eq
21BrFalse(29)
B3:
22MoveLoc[7](loc5: &vector<Ty0>)
23Pop
24MoveLoc[1](Arg1: &Ty0)
25Pop
26LdTrue
27StLoc[3](loc1: bool)
28Branch(40)
B4:
29MoveLoc[4](loc2: u64)
30LdU64(1)
31Add
32StLoc[4](loc2: u64)
33Branch(10)
B5:
34MoveLoc[7](loc5: &vector<Ty0>)
35Pop
36MoveLoc[1](Arg1: &Ty0)
37Pop
38LdFalse
39StLoc[3](loc1: bool)
B6:
40MoveLoc[3](loc1: bool)
41Ret
}
 
public length<Ty0: copy + drop>(Arg0: &VecSet<Ty0>): u64 {
B0:
0MoveLoc[0](Arg0: &VecSet<Ty0>)
1ImmBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
2VecLen(2)
3Ret
}
 
public is_empty<Ty0: copy + drop>(Arg0: &VecSet<Ty0>): bool {
B0:
0MoveLoc[0](Arg0: &VecSet<Ty0>)
1Call length<Ty0>(&VecSet<Ty0>): u64
2LdU64(0)
3Eq
4Ret
}
 
public into_keys<Ty0: copy + drop>(Arg0: VecSet<Ty0>): vector<Ty0> {
B0:
0MoveLoc[0](Arg0: VecSet<Ty0>)
1UnpackGeneric[0](VecSet<Ty0>)
2Ret
}
 
public from_keys<Ty0: copy + drop>(Arg0: vector<Ty0>): VecSet<Ty0> {
L1: loc0: u64
L2: loc1: u64
L3: loc2: Ty0
L4: loc3: VecSet<Ty0>
L5: loc4: u64
L6: loc5: vector<Ty0>
B0:
0Call empty<Ty0>(): VecSet<Ty0>
1StLoc[4](loc3: VecSet<Ty0>)
2MoveLoc[0](Arg0: vector<Ty0>)
3StLoc[6](loc5: vector<Ty0>)
4MutBorrowLoc[6](loc5: vector<Ty0>)
5Call vector::reverse<Ty0>(&mut vector<Ty0>)
6ImmBorrowLoc[6](loc5: vector<Ty0>)
7VecLen(2)
8StLoc[1](loc0: u64)
9LdU64(0)
10StLoc[2](loc1: u64)
11MoveLoc[1](loc0: u64)
12StLoc[5](loc4: u64)
B1:
13CopyLoc[2](loc1: u64)
14CopyLoc[5](loc4: u64)
15Lt
16BrFalse(30)
B2:
17CopyLoc[2](loc1: u64)
18Pop
19MutBorrowLoc[6](loc5: vector<Ty0>)
20VecPopBack(2)
21StLoc[3](loc2: Ty0)
22MutBorrowLoc[4](loc3: VecSet<Ty0>)
23MoveLoc[3](loc2: Ty0)
24Call insert<Ty0>(&mut VecSet<Ty0>, Ty0)
25MoveLoc[2](loc1: u64)
26LdU64(1)
27Add
28StLoc[2](loc1: u64)
29Branch(13)
B3:
30MoveLoc[6](loc5: vector<Ty0>)
31VecUnpack(2, 0)
32MoveLoc[4](loc3: VecSet<Ty0>)
33Ret
}
 
public keys<Ty0: copy + drop>(Arg0: &VecSet<Ty0>): &vector<Ty0> {
B0:
0MoveLoc[0](Arg0: &VecSet<Ty0>)
1ImmBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
2Ret
}
 
public size<Ty0: copy + drop>(Arg0: &VecSet<Ty0>): u64 {
B0:
0MoveLoc[0](Arg0: &VecSet<Ty0>)
1ImmBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
2VecLen(2)
3Ret
}
 
Constants [
0 => u64: 0
1 => u64: 1
]
}