@@ -19,28 +19,28 @@ fn (mut lcg LCG) next() u32 {
19
19
return lcg.seed
20
20
}
21
21
22
- struct LinkedListNode < T > {
22
+ struct LinkedListNode [T] {
23
23
mut :
24
- prev & LinkedListNode< T >
25
- next & LinkedListNode< T >
24
+ prev & LinkedListNode[T]
25
+ next & LinkedListNode[T]
26
26
data T
27
27
}
28
28
29
- struct LinkedList < T > {
29
+ struct LinkedList [T] {
30
30
mut :
31
31
len int
32
- head & LinkedListNode< T > = 0
33
- tail & LinkedListNode< T > = 0
32
+ head & LinkedListNode[T] = 0
33
+ tail & LinkedListNode[T] = 0
34
34
}
35
35
36
- fn (mut ll LinkedList<T> ) add < T > (data T) & LinkedListNode< T > {
36
+ fn (mut ll LinkedList[T] ) add [T] (data T) & LinkedListNode[T] {
37
37
node = & LinkedListNode{data}
38
38
ll.__add_node (node)
39
39
ll.len + = 1
40
40
return node
41
41
}
42
42
43
- fn (mut ll LinkedList<T> ) __add_node < T > (node & LinkedListNode< T > ) {
43
+ fn (mut ll LinkedList[T] ) __add_node [T] (node & LinkedListNode[T] ) {
44
44
if ll.head == 0 {
45
45
ll.head = node
46
46
node.prev = 0
@@ -52,7 +52,7 @@ fn (mut ll LinkedList<T>) __add_node<T>(node &LinkedListNode<T>) {
52
52
node.next = 0
53
53
}
54
54
55
- fn (mut ll LinkedList<T> ) __remove < T > (node & LinkedListNode< T > ) {
55
+ fn (mut ll LinkedList[T] ) __remove [T] (node & LinkedListNode[T] ) {
56
56
if ll.head == node {
57
57
ll.head = node.next
58
58
}
@@ -67,12 +67,12 @@ fn (mut ll LinkedList<T>) __remove<T>(node &LinkedListNode<T>) {
67
67
}
68
68
}
69
69
70
- fn (mut ll LinkedList<T> ) move_to_end (node & LinkedListNode< T > ) {
70
+ fn (mut ll LinkedList[T] ) move_to_end (node & LinkedListNode[T] ) {
71
71
ll.__remove (node)
72
72
ll.__add_node (node)
73
73
}
74
74
75
- fn (mut ll LinkedList<T> ) pop_head () & LinkedListNode< T > {
75
+ fn (mut ll LinkedList[T] ) pop_head () & LinkedListNode[T] {
76
76
if self.head != 0 {
77
77
head := self.head
78
78
self.head = head.next
@@ -82,16 +82,16 @@ fn (mut ll LinkedList<T>) pop_head() &LinkedListNode<T> {
82
82
return 0
83
83
}
84
84
85
- struct Pair < K, V> {
85
+ struct Pair [ K, V] {
86
86
key K
87
87
value V
88
88
}
89
89
90
- struct LRU < K, V> {
90
+ struct LRU [ K, V] {
91
91
size int
92
92
mut :
93
- _key_lookup map [K]& LinkedListNode< Pair< K, V>> = {}
94
- _entries LinkedList< Pair< K, V>> = {}
93
+ _key_lookup map [K]& LinkedListNode[ Pair[ K, V]] = {}
94
+ _entries LinkedList[ Pair[ K, V]] = {}
95
95
}
96
96
97
97
fn (mut lru LRU) get (key u32 ) ? u32 {
@@ -130,7 +130,7 @@ fn main() {
130
130
mut rng1 := LCG{
131
131
seed: 1
132
132
}
133
- mut lru := LRU< u32 , u32 > {
133
+ mut lru := LRU[ u32 , u32 ] {
134
134
size: size
135
135
}
136
136
@@ -148,5 +148,5 @@ fn main() {
148
148
}
149
149
}
150
150
151
- println ('$hit \n $missed ' )
151
+ println ('${ hit} \n ${ missed} ' )
152
152
}
0 commit comments