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

API

linked_table

Module0x0000…0002
Move path
0x0000…0002::linked_table
Functions
1919 public, 0 entry
Structs
2
Friend modules
None
linked_table

Bytecode578 lines

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

// Move bytecode v7
module 2.linked_table {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
 
struct LinkedTable<Ty0: copy + drop + store, phantom Ty1: store> has store, key {
id: UID,
size: u64,
head: Option<Ty0>,
tail: Option<Ty0>
}
 
struct Node<Ty0: copy + drop + store, Ty1: store> has store {
prev: Option<Ty0>,
next: Option<Ty0>,
value: Ty1
}
 
public new<Ty0: copy + drop + store, Ty1: store>(Arg0: &mut TxContext): LinkedTable<Ty0, Ty1> {
B0:
0MoveLoc[0](Arg0: &mut TxContext)
1Call object::new(&mut TxContext): UID
2LdU64(0)
3Call option::none<Ty0>(): Option<Ty0>
4Call option::none<Ty0>(): Option<Ty0>
5PackGeneric[0](LinkedTable<Ty0, Ty1>)
6Ret
}
 
public front<Ty0: copy + drop + store, Ty1: store>(Arg0: &LinkedTable<Ty0, Ty1>): &Option<Ty0> {
B0:
0MoveLoc[0](Arg0: &LinkedTable<Ty0, Ty1>)
1ImmBorrowFieldGeneric[0](LinkedTable.head: Option<Ty0>)
2Ret
}
 
public back<Ty0: copy + drop + store, Ty1: store>(Arg0: &LinkedTable<Ty0, Ty1>): &Option<Ty0> {
B0:
0MoveLoc[0](Arg0: &LinkedTable<Ty0, Ty1>)
1ImmBorrowFieldGeneric[1](LinkedTable.tail: Option<Ty0>)
2Ret
}
 
public push_front<Ty0: copy + drop + store, Ty1: store>(Arg0: &mut LinkedTable<Ty0, Ty1>, Arg1: Ty0, Arg2: Ty1) {
L3: loc0: Option<Ty0>
L4: loc1: Option<Ty0>
L5: loc2: Option<Ty0>
L6: loc3: Option<Ty0>
L7: loc4: Ty0
L8: loc5: Option<Ty0>
B0:
0CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
1MutBorrowFieldGeneric[0](LinkedTable.head: Option<Ty0>)
2CopyLoc[1](Arg1: Ty0)
3Call option::swap_or_fill<Ty0>(&mut Option<Ty0>, Ty0): Option<Ty0>
4StLoc[6](loc3: Option<Ty0>)
5CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
6ImmBorrowFieldGeneric[1](LinkedTable.tail: Option<Ty0>)
7Call option::is_none<Ty0>(&Option<Ty0>): bool
8BrFalse(13)
B1:
9CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
10MutBorrowFieldGeneric[1](LinkedTable.tail: Option<Ty0>)
11CopyLoc[1](Arg1: Ty0)
12Call option::fill<Ty0>(&mut Option<Ty0>, Ty0)
B2:
13Call option::none<Ty0>(): Option<Ty0>
14StLoc[8](loc5: Option<Ty0>)
15MoveLoc[6](loc3: Option<Ty0>)
16StLoc[5](loc2: Option<Ty0>)
17ImmBorrowLoc[5](loc2: Option<Ty0>)
18Call option::is_some<Ty0>(&Option<Ty0>): bool
19BrFalse(35)
B3:
20MoveLoc[5](loc2: Option<Ty0>)
21Call option::destroy_some<Ty0>(Option<Ty0>): Ty0
22StLoc[7](loc4: Ty0)
23CopyLoc[1](Arg1: Ty0)
24Call option::some<Ty0>(Ty0): Option<Ty0>
25CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
26MutBorrowFieldGeneric[2](LinkedTable.id: UID)
27CopyLoc[7](loc4: Ty0)
28Call dynamic_field::borrow_mut<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0): &mut Node<Ty0, Ty1>
29MutBorrowFieldGeneric[3](Node.prev: Option<Ty0>)
30WriteRef
31MoveLoc[7](loc4: Ty0)
32Call option::some<Ty0>(Ty0): Option<Ty0>
33StLoc[3](loc0: Option<Ty0>)
34Branch(39)
B4:
35MoveLoc[5](loc2: Option<Ty0>)
36Call option::destroy_none<Ty0>(Option<Ty0>)
37Call option::none<Ty0>(): Option<Ty0>
38StLoc[3](loc0: Option<Ty0>)
B5:
39MoveLoc[3](loc0: Option<Ty0>)
40StLoc[4](loc1: Option<Ty0>)
41CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
42MutBorrowFieldGeneric[2](LinkedTable.id: UID)
43MoveLoc[1](Arg1: Ty0)
44MoveLoc[8](loc5: Option<Ty0>)
45MoveLoc[4](loc1: Option<Ty0>)
46MoveLoc[2](Arg2: Ty1)
47PackGeneric[1](Node<Ty0, Ty1>)
48Call dynamic_field::add<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0, Node<Ty0, Ty1>)
49CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
50ImmBorrowFieldGeneric[4](LinkedTable.size: u64)
51ReadRef
52LdU64(1)
53Add
54MoveLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
55MutBorrowFieldGeneric[4](LinkedTable.size: u64)
56WriteRef
57Ret
}
 
public push_back<Ty0: copy + drop + store, Ty1: store>(Arg0: &mut LinkedTable<Ty0, Ty1>, Arg1: Ty0, Arg2: Ty1) {
L3: loc0: Option<Ty0>
L4: loc1: Option<Ty0>
L5: loc2: Option<Ty0>
L6: loc3: Ty0
L7: loc4: Option<Ty0>
B0:
0CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
1ImmBorrowFieldGeneric[0](LinkedTable.head: Option<Ty0>)
2Call option::is_none<Ty0>(&Option<Ty0>): bool
3BrFalse(8)
B1:
4CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
5MutBorrowFieldGeneric[0](LinkedTable.head: Option<Ty0>)
6CopyLoc[1](Arg1: Ty0)
7Call option::fill<Ty0>(&mut Option<Ty0>, Ty0)
B2:
8CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
9MutBorrowFieldGeneric[1](LinkedTable.tail: Option<Ty0>)
10CopyLoc[1](Arg1: Ty0)
11Call option::swap_or_fill<Ty0>(&mut Option<Ty0>, Ty0): Option<Ty0>
12StLoc[5](loc2: Option<Ty0>)
13ImmBorrowLoc[5](loc2: Option<Ty0>)
14Call option::is_some<Ty0>(&Option<Ty0>): bool
15BrFalse(31)
B3:
16MoveLoc[5](loc2: Option<Ty0>)
17Call option::destroy_some<Ty0>(Option<Ty0>): Ty0
18StLoc[6](loc3: Ty0)
19CopyLoc[1](Arg1: Ty0)
20Call option::some<Ty0>(Ty0): Option<Ty0>
21CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
22MutBorrowFieldGeneric[2](LinkedTable.id: UID)
23CopyLoc[6](loc3: Ty0)
24Call dynamic_field::borrow_mut<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0): &mut Node<Ty0, Ty1>
25MutBorrowFieldGeneric[5](Node.next: Option<Ty0>)
26WriteRef
27MoveLoc[6](loc3: Ty0)
28Call option::some<Ty0>(Ty0): Option<Ty0>
29StLoc[3](loc0: Option<Ty0>)
30Branch(35)
B4:
31MoveLoc[5](loc2: Option<Ty0>)
32Call option::destroy_none<Ty0>(Option<Ty0>)
33Call option::none<Ty0>(): Option<Ty0>
34StLoc[3](loc0: Option<Ty0>)
B5:
35MoveLoc[3](loc0: Option<Ty0>)
36StLoc[7](loc4: Option<Ty0>)
37Call option::none<Ty0>(): Option<Ty0>
38StLoc[4](loc1: Option<Ty0>)
39CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
40MutBorrowFieldGeneric[2](LinkedTable.id: UID)
41MoveLoc[1](Arg1: Ty0)
42MoveLoc[7](loc4: Option<Ty0>)
43MoveLoc[4](loc1: Option<Ty0>)
44MoveLoc[2](Arg2: Ty1)
45PackGeneric[1](Node<Ty0, Ty1>)
46Call dynamic_field::add<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0, Node<Ty0, Ty1>)
47CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
48ImmBorrowFieldGeneric[4](LinkedTable.size: u64)
49ReadRef
50LdU64(1)
51Add
52MoveLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
53MutBorrowFieldGeneric[4](LinkedTable.size: u64)
54WriteRef
55Ret
}
 
public insert_before<Ty0: copy + drop + store, Ty1: store>(Arg0: &mut LinkedTable<Ty0, Ty1>, Arg1: Ty0, Arg2: Ty0, Arg3: Ty1) {
L4: loc0: Option<Ty0>
L5: loc1: Option<Ty0>
L6: loc2: Ty0
B0:
0CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
1MutBorrowFieldGeneric[2](LinkedTable.id: UID)
2CopyLoc[1](Arg1: Ty0)
3Call dynamic_field::borrow_mut<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0): &mut Node<Ty0, Ty1>
4MutBorrowFieldGeneric[3](Node.prev: Option<Ty0>)
5CopyLoc[2](Arg2: Ty0)
6Call option::swap_or_fill<Ty0>(&mut Option<Ty0>, Ty0): Option<Ty0>
7StLoc[5](loc1: Option<Ty0>)
8CopyLoc[5](loc1: Option<Ty0>)
9StLoc[4](loc0: Option<Ty0>)
10ImmBorrowLoc[4](loc0: Option<Ty0>)
11Call option::is_some<Ty0>(&Option<Ty0>): bool
12BrFalse(25)
B1:
13MoveLoc[4](loc0: Option<Ty0>)
14Call option::destroy_some<Ty0>(Option<Ty0>): Ty0
15StLoc[6](loc2: Ty0)
16CopyLoc[2](Arg2: Ty0)
17Call option::some<Ty0>(Ty0): Option<Ty0>
18CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
19MutBorrowFieldGeneric[2](LinkedTable.id: UID)
20MoveLoc[6](loc2: Ty0)
21Call dynamic_field::borrow_mut<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0): &mut Node<Ty0, Ty1>
22MutBorrowFieldGeneric[5](Node.next: Option<Ty0>)
23WriteRef
24Branch(32)
B2:
25MoveLoc[4](loc0: Option<Ty0>)
26Call option::destroy_none<Ty0>(Option<Ty0>)
27CopyLoc[2](Arg2: Ty0)
28Call option::some<Ty0>(Ty0): Option<Ty0>
29CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
30MutBorrowFieldGeneric[0](LinkedTable.head: Option<Ty0>)
31WriteRef
B3:
32CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
33MutBorrowFieldGeneric[2](LinkedTable.id: UID)
34MoveLoc[2](Arg2: Ty0)
35MoveLoc[5](loc1: Option<Ty0>)
36MoveLoc[1](Arg1: Ty0)
37Call option::some<Ty0>(Ty0): Option<Ty0>
38MoveLoc[3](Arg3: Ty1)
39PackGeneric[1](Node<Ty0, Ty1>)
40Call dynamic_field::add<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0, Node<Ty0, Ty1>)
41CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
42ImmBorrowFieldGeneric[4](LinkedTable.size: u64)
43ReadRef
44LdU64(1)
45Add
46MoveLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
47MutBorrowFieldGeneric[4](LinkedTable.size: u64)
48WriteRef
49Ret
}
 
public insert_after<Ty0: copy + drop + store, Ty1: store>(Arg0: &mut LinkedTable<Ty0, Ty1>, Arg1: Ty0, Arg2: Ty0, Arg3: Ty1) {
L4: loc0: Option<Ty0>
L5: loc1: Option<Ty0>
L6: loc2: Ty0
B0:
0CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
1MutBorrowFieldGeneric[2](LinkedTable.id: UID)
2CopyLoc[1](Arg1: Ty0)
3Call dynamic_field::borrow_mut<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0): &mut Node<Ty0, Ty1>
4MutBorrowFieldGeneric[5](Node.next: Option<Ty0>)
5CopyLoc[2](Arg2: Ty0)
6Call option::swap_or_fill<Ty0>(&mut Option<Ty0>, Ty0): Option<Ty0>
7StLoc[5](loc1: Option<Ty0>)
8CopyLoc[5](loc1: Option<Ty0>)
9StLoc[4](loc0: Option<Ty0>)
10ImmBorrowLoc[4](loc0: Option<Ty0>)
11Call option::is_some<Ty0>(&Option<Ty0>): bool
12BrFalse(25)
B1:
13MoveLoc[4](loc0: Option<Ty0>)
14Call option::destroy_some<Ty0>(Option<Ty0>): Ty0
15StLoc[6](loc2: Ty0)
16CopyLoc[2](Arg2: Ty0)
17Call option::some<Ty0>(Ty0): Option<Ty0>
18CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
19MutBorrowFieldGeneric[2](LinkedTable.id: UID)
20MoveLoc[6](loc2: Ty0)
21Call dynamic_field::borrow_mut<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0): &mut Node<Ty0, Ty1>
22MutBorrowFieldGeneric[3](Node.prev: Option<Ty0>)
23WriteRef
24Branch(32)
B2:
25MoveLoc[4](loc0: Option<Ty0>)
26Call option::destroy_none<Ty0>(Option<Ty0>)
27CopyLoc[2](Arg2: Ty0)
28Call option::some<Ty0>(Ty0): Option<Ty0>
29CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
30MutBorrowFieldGeneric[1](LinkedTable.tail: Option<Ty0>)
31WriteRef
B3:
32CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
33MutBorrowFieldGeneric[2](LinkedTable.id: UID)
34MoveLoc[2](Arg2: Ty0)
35MoveLoc[1](Arg1: Ty0)
36Call option::some<Ty0>(Ty0): Option<Ty0>
37MoveLoc[5](loc1: Option<Ty0>)
38MoveLoc[3](Arg3: Ty1)
39PackGeneric[1](Node<Ty0, Ty1>)
40Call dynamic_field::add<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0, Node<Ty0, Ty1>)
41CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
42ImmBorrowFieldGeneric[4](LinkedTable.size: u64)
43ReadRef
44LdU64(1)
45Add
46MoveLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
47MutBorrowFieldGeneric[4](LinkedTable.size: u64)
48WriteRef
49Ret
}
 
public borrow<Ty0: copy + drop + store, Ty1: store>(Arg0: &LinkedTable<Ty0, Ty1>, Arg1: Ty0): &Ty1 {
B0:
0MoveLoc[0](Arg0: &LinkedTable<Ty0, Ty1>)
1ImmBorrowFieldGeneric[2](LinkedTable.id: UID)
2MoveLoc[1](Arg1: Ty0)
3Call dynamic_field::borrow<Ty0, Node<Ty0, Ty1>>(&UID, Ty0): &Node<Ty0, Ty1>
4ImmBorrowFieldGeneric[6](Node.value: Ty1)
5Ret
}
 
public borrow_mut<Ty0: copy + drop + store, Ty1: store>(Arg0: &mut LinkedTable<Ty0, Ty1>, Arg1: Ty0): &mut Ty1 {
B0:
0MoveLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
1MutBorrowFieldGeneric[2](LinkedTable.id: UID)
2MoveLoc[1](Arg1: Ty0)
3Call dynamic_field::borrow_mut<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0): &mut Node<Ty0, Ty1>
4MutBorrowFieldGeneric[6](Node.value: Ty1)
5Ret
}
 
public prev<Ty0: copy + drop + store, Ty1: store>(Arg0: &LinkedTable<Ty0, Ty1>, Arg1: Ty0): &Option<Ty0> {
B0:
0MoveLoc[0](Arg0: &LinkedTable<Ty0, Ty1>)
1ImmBorrowFieldGeneric[2](LinkedTable.id: UID)
2MoveLoc[1](Arg1: Ty0)
3Call dynamic_field::borrow<Ty0, Node<Ty0, Ty1>>(&UID, Ty0): &Node<Ty0, Ty1>
4ImmBorrowFieldGeneric[3](Node.prev: Option<Ty0>)
5Ret
}
 
public next<Ty0: copy + drop + store, Ty1: store>(Arg0: &LinkedTable<Ty0, Ty1>, Arg1: Ty0): &Option<Ty0> {
B0:
0MoveLoc[0](Arg0: &LinkedTable<Ty0, Ty1>)
1ImmBorrowFieldGeneric[2](LinkedTable.id: UID)
2MoveLoc[1](Arg1: Ty0)
3Call dynamic_field::borrow<Ty0, Node<Ty0, Ty1>>(&UID, Ty0): &Node<Ty0, Ty1>
4ImmBorrowFieldGeneric[5](Node.next: Option<Ty0>)
5Ret
}
 
public remove<Ty0: copy + drop + store, Ty1: store>(Arg0: &mut LinkedTable<Ty0, Ty1>, Arg1: Ty0): Ty1 {
L2: loc0: Option<Ty0>
L3: loc1: Ty0
L4: loc2: Option<Ty0>
L5: loc3: Option<Ty0>
L6: loc4: Option<Ty0>
L7: loc5: Ty0
L8: loc6: Ty1
B0:
0CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
1MutBorrowFieldGeneric[2](LinkedTable.id: UID)
2CopyLoc[1](Arg1: Ty0)
3Call dynamic_field::remove<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0): Node<Ty0, Ty1>
4UnpackGeneric[1](Node<Ty0, Ty1>)
5StLoc[8](loc6: Ty1)
6StLoc[2](loc0: Option<Ty0>)
7StLoc[6](loc4: Option<Ty0>)
8CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
9ImmBorrowFieldGeneric[4](LinkedTable.size: u64)
10ReadRef
11LdU64(1)
12Sub
13CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
14MutBorrowFieldGeneric[4](LinkedTable.size: u64)
15WriteRef
16CopyLoc[6](loc4: Option<Ty0>)
17StLoc[4](loc2: Option<Ty0>)
18ImmBorrowLoc[4](loc2: Option<Ty0>)
19Call option::is_some<Ty0>(&Option<Ty0>): bool
20BrFalse(32)
B1:
21MoveLoc[4](loc2: Option<Ty0>)
22Call option::destroy_some<Ty0>(Option<Ty0>): Ty0
23StLoc[7](loc5: Ty0)
24CopyLoc[2](loc0: Option<Ty0>)
25CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
26MutBorrowFieldGeneric[2](LinkedTable.id: UID)
27MoveLoc[7](loc5: Ty0)
28Call dynamic_field::borrow_mut<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0): &mut Node<Ty0, Ty1>
29MutBorrowFieldGeneric[5](Node.next: Option<Ty0>)
30WriteRef
31Branch(34)
B2:
32MoveLoc[4](loc2: Option<Ty0>)
33Call option::destroy_none<Ty0>(Option<Ty0>)
B3:
34CopyLoc[2](loc0: Option<Ty0>)
35StLoc[5](loc3: Option<Ty0>)
36ImmBorrowLoc[5](loc3: Option<Ty0>)
37Call option::is_some<Ty0>(&Option<Ty0>): bool
38BrFalse(50)
B4:
39MoveLoc[5](loc3: Option<Ty0>)
40Call option::destroy_some<Ty0>(Option<Ty0>): Ty0
41StLoc[3](loc1: Ty0)
42CopyLoc[6](loc4: Option<Ty0>)
43CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
44MutBorrowFieldGeneric[2](LinkedTable.id: UID)
45MoveLoc[3](loc1: Ty0)
46Call dynamic_field::borrow_mut<Ty0, Node<Ty0, Ty1>>(&mut UID, Ty0): &mut Node<Ty0, Ty1>
47MutBorrowFieldGeneric[3](Node.prev: Option<Ty0>)
48WriteRef
49Branch(52)
B5:
50MoveLoc[5](loc3: Option<Ty0>)
51Call option::destroy_none<Ty0>(Option<Ty0>)
B6:
52CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
53ImmBorrowFieldGeneric[0](LinkedTable.head: Option<Ty0>)
54Call option::borrow<Ty0>(&Option<Ty0>): &Ty0
55ImmBorrowLoc[1](Arg1: Ty0)
56Eq
57BrFalse(62)
B7:
58MoveLoc[2](loc0: Option<Ty0>)
59CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
60MutBorrowFieldGeneric[0](LinkedTable.head: Option<Ty0>)
61WriteRef
B8:
62CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
63ImmBorrowFieldGeneric[1](LinkedTable.tail: Option<Ty0>)
64Call option::borrow<Ty0>(&Option<Ty0>): &Ty0
65ImmBorrowLoc[1](Arg1: Ty0)
66Eq
67BrFalse(73)
B9:
68MoveLoc[6](loc4: Option<Ty0>)
69MoveLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
70MutBorrowFieldGeneric[1](LinkedTable.tail: Option<Ty0>)
71WriteRef
72Branch(75)
B10:
73MoveLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
74Pop
B11:
75MoveLoc[8](loc6: Ty1)
76Ret
}
 
public pop_front<Ty0: copy + drop + store, Ty1: store>(Arg0: &mut LinkedTable<Ty0, Ty1>): Ty0 * Ty1 {
L1: loc0: Ty0
L2: loc1: Option<Ty0>
B0:
0CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
1ImmBorrowFieldGeneric[0](LinkedTable.head: Option<Ty0>)
2ReadRef
3StLoc[2](loc1: Option<Ty0>)
4ImmBorrowLoc[2](loc1: Option<Ty0>)
5Call option::is_some<Ty0>(&Option<Ty0>): bool
6BrFalse(8)
B1:
7Branch(14)
B2:
8MoveLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
9Pop
10MoveLoc[2](loc1: Option<Ty0>)
11Call option::destroy_none<Ty0>(Option<Ty0>)
12LdConst[1](u64: 1)
13Abort
B3:
14MoveLoc[2](loc1: Option<Ty0>)
15Call option::destroy_some<Ty0>(Option<Ty0>): Ty0
16StLoc[1](loc0: Ty0)
17CopyLoc[1](loc0: Ty0)
18MoveLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
19MoveLoc[1](loc0: Ty0)
20Call remove<Ty0, Ty1>(&mut LinkedTable<Ty0, Ty1>, Ty0): Ty1
21Ret
}
 
public pop_back<Ty0: copy + drop + store, Ty1: store>(Arg0: &mut LinkedTable<Ty0, Ty1>): Ty0 * Ty1 {
L1: loc0: Option<Ty0>
L2: loc1: Ty0
B0:
0CopyLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
1ImmBorrowFieldGeneric[1](LinkedTable.tail: Option<Ty0>)
2ReadRef
3StLoc[1](loc0: Option<Ty0>)
4ImmBorrowLoc[1](loc0: Option<Ty0>)
5Call option::is_some<Ty0>(&Option<Ty0>): bool
6BrFalse(8)
B1:
7Branch(14)
B2:
8MoveLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
9Pop
10MoveLoc[1](loc0: Option<Ty0>)
11Call option::destroy_none<Ty0>(Option<Ty0>)
12LdConst[1](u64: 1)
13Abort
B3:
14MoveLoc[1](loc0: Option<Ty0>)
15Call option::destroy_some<Ty0>(Option<Ty0>): Ty0
16StLoc[2](loc1: Ty0)
17CopyLoc[2](loc1: Ty0)
18MoveLoc[0](Arg0: &mut LinkedTable<Ty0, Ty1>)
19MoveLoc[2](loc1: Ty0)
20Call remove<Ty0, Ty1>(&mut LinkedTable<Ty0, Ty1>, Ty0): Ty1
21Ret
}
 
public contains<Ty0: copy + drop + store, Ty1: store>(Arg0: &LinkedTable<Ty0, Ty1>, Arg1: Ty0): bool {
B0:
0MoveLoc[0](Arg0: &LinkedTable<Ty0, Ty1>)
1ImmBorrowFieldGeneric[2](LinkedTable.id: UID)
2MoveLoc[1](Arg1: Ty0)
3Call dynamic_field::exists_with_type<Ty0, Node<Ty0, Ty1>>(&UID, Ty0): bool
4Ret
}
 
public length<Ty0: copy + drop + store, Ty1: store>(Arg0: &LinkedTable<Ty0, Ty1>): u64 {
B0:
0MoveLoc[0](Arg0: &LinkedTable<Ty0, Ty1>)
1ImmBorrowFieldGeneric[4](LinkedTable.size: u64)
2ReadRef
3Ret
}
 
public is_empty<Ty0: copy + drop + store, Ty1: store>(Arg0: &LinkedTable<Ty0, Ty1>): bool {
B0:
0MoveLoc[0](Arg0: &LinkedTable<Ty0, Ty1>)
1ImmBorrowFieldGeneric[4](LinkedTable.size: u64)
2ReadRef
3LdU64(0)
4Eq
5Ret
}
 
public destroy_empty<Ty0: copy + drop + store, Ty1: store>(Arg0: LinkedTable<Ty0, Ty1>) {
L1: loc0: UID
L2: loc1: u64
B0:
0MoveLoc[0](Arg0: LinkedTable<Ty0, Ty1>)
1UnpackGeneric[0](LinkedTable<Ty0, Ty1>)
2Pop
3Pop
4StLoc[2](loc1: u64)
5StLoc[1](loc0: UID)
6MoveLoc[2](loc1: u64)
7LdU64(0)
8Eq
9BrFalse(11)
B1:
10Branch(13)
B2:
11LdConst[0](u64: 0)
12Abort
B3:
13MoveLoc[1](loc0: UID)
14Call object::delete(UID)
15Ret
}
 
public drop<Ty0: copy + drop + store, Ty1: drop + store>(Arg0: LinkedTable<Ty0, Ty1>) {
B0:
0MoveLoc[0](Arg0: LinkedTable<Ty0, Ty1>)
1UnpackGeneric[0](LinkedTable<Ty0, Ty1>)
2Pop
3Pop
4Pop
5Call object::delete(UID)
6Ret
}
 
Constants [
0 => u64: 0
1 => u64: 1
]
}