aboutsummaryrefslogtreecommitdiff
path: root/xmpp-vala/src/module/util.vala
diff options
context:
space:
mode:
Diffstat (limited to 'xmpp-vala/src/module/util.vala')
-rw-r--r--xmpp-vala/src/module/util.vala40
1 files changed, 40 insertions, 0 deletions
diff --git a/xmpp-vala/src/module/util.vala b/xmpp-vala/src/module/util.vala
index 7051307a..7e1bb2b3 100644
--- a/xmpp-vala/src/module/util.vala
+++ b/xmpp-vala/src/module/util.vala
@@ -18,4 +18,44 @@ namespace Xmpp {
UUID.unparse_upper(rand, str);
return (string) str;
}
+
+ public class Tuple<A,B> : Object {
+ public A a { get; private set; }
+ public B b { get; private set; }
+
+ public Tuple(A a, B b) {
+ this.a = a;
+ this.b = b;
+ }
+
+ public static Tuple<A,B> create<A,B>(A a, B b) {
+ return new Tuple<A,B>(a,b);
+ }
+ }
+
+ public class Triple<A,B,C> : Tuple<A,B> {
+ public C c { get; private set; }
+
+ public Triple(A a, B b, C c) {
+ base(a, b);
+ this.c = c;
+ }
+
+ public static new Triple<A,B,C> create<A,B,C>(A a, B b, C c) {
+ return new Triple<A,B,C>(a, b, c);
+ }
+ }
+
+ public class Quadruple<A,B,C,D> : Triple<A,B,C> {
+ public D d { get; private set; }
+
+ public Quadruple(A a, B b, C c, D d) {
+ base (a, b, c);
+ this.d = d;
+ }
+
+ public static new Quadruple<A,B,C,D> create<A,B,C,D>(A a, B b, C c, D d) {
+ return new Quadruple<A,B,C,D>(a, b, c, d);
+ }
+ }
} \ No newline at end of file