Software /
code /
prosody
Annotate
teal-src/util/set.d.tl @ 12763:d26eefe98d09
util.dbuffer: Add efficient shortcuts for discard() in certain cases
If the buffer is already empty, nothing to do. If we're throwing away the
whole buffer, we can just empty it and avoid read_chunk() (which in turn
may collapse()). These shortcuts are much more efficient.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 11 Oct 2022 11:37:55 +0100 |
parent | 12617:36d77cc56ecb |
rev | line source |
---|---|
12617
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 local record lib |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 record Set<T> |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 add : function<T> (Set<T>, T) |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 contains : function<T> (Set<T>, T) : boolean |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 contains_set : function<T> (Set<T>, Set<T>) : boolean |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 items : function<T> (Set<T>) : function<T> (Set<T>, T) : T |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 add_list : function<T> (Set<T>, { T }) |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 include : function<T> (Set<T>, Set<T>) |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 exclude : function<T> (Set<T>, Set<T>) |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 empty : function<T> (Set<T>) : boolean |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 end |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 new : function<T> ({ T }) : Set<T> |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 is_set : function (any) : boolean |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 union : function<T> (Set<T>, Set<T>) : Set <T> |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 difference : function<T> (Set<T>, Set<T>) : Set <T> |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 intersection : function<T> (Set<T>, Set<T>) : Set <T> |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 xor : function<T> (Set<T>, Set<T>) : Set <T> |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 end |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 |
36d77cc56ecb
util.set: Add teal type declaration file
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 return lib |