summaryrefslogtreecommitdiff
path: root/src/main/java/mossbar/extensions
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2025-07-02 23:36:30 +0200
committerLinnea Gräf <nea@nea.moe>2025-07-02 23:36:30 +0200
commit1eae252f41eab7612864fb479263dc93310d8930 (patch)
treeb10172d42668cb8b5199565c0e2eee4ac3e9c5c3 /src/main/java/mossbar/extensions
downloadmossbar-1eae252f41eab7612864fb479263dc93310d8930.tar.gz
mossbar-1eae252f41eab7612864fb479263dc93310d8930.tar.bz2
mossbar-1eae252f41eab7612864fb479263dc93310d8930.zip
init
Diffstat (limited to 'src/main/java/mossbar/extensions')
-rw-r--r--src/main/java/mossbar/extensions/java/lang/AutoCloseable/ScopeObjectCloseable.java25
-rw-r--r--src/main/java/mossbar/extensions/org/freedesktop/wayland/client/Proxy/ProxyExtension.java20
2 files changed, 45 insertions, 0 deletions
diff --git a/src/main/java/mossbar/extensions/java/lang/AutoCloseable/ScopeObjectCloseable.java b/src/main/java/mossbar/extensions/java/lang/AutoCloseable/ScopeObjectCloseable.java
new file mode 100644
index 0000000..6268327
--- /dev/null
+++ b/src/main/java/mossbar/extensions/java/lang/AutoCloseable/ScopeObjectCloseable.java
@@ -0,0 +1,25 @@
+package mossbar.extensions.java.lang.AutoCloseable;
+
+import manifold.ext.rt.api.Extension;
+import manifold.ext.rt.api.Self;
+import manifold.ext.rt.api.This;
+import moe.nea.mossbar.concepts.Scope;
+import moe.nea.mossbar.concepts.ScopeObject;
+
+@Extension
+public class ScopeObjectCloseable {
+ public static ScopeObject asScopeObject(@This AutoCloseable closeable) {
+ return () -> {
+ try {
+ closeable.close();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ };
+ }
+
+ public static @Self AutoCloseable bindTo(@Self @This AutoCloseable thiz, Scope scope) {
+ thiz.asScopeObject().bindTo(scope);
+ return thiz;
+ }
+} \ No newline at end of file
diff --git a/src/main/java/mossbar/extensions/org/freedesktop/wayland/client/Proxy/ProxyExtension.java b/src/main/java/mossbar/extensions/org/freedesktop/wayland/client/Proxy/ProxyExtension.java
new file mode 100644
index 0000000..50aee26
--- /dev/null
+++ b/src/main/java/mossbar/extensions/org/freedesktop/wayland/client/Proxy/ProxyExtension.java
@@ -0,0 +1,20 @@
+package mossbar.extensions.org.freedesktop.wayland.client.Proxy;
+
+import manifold.ext.rt.api.Extension;
+import manifold.ext.rt.api.Self;
+import manifold.ext.rt.api.This;
+import moe.nea.mossbar.concepts.Scope;
+import moe.nea.mossbar.concepts.ScopeObjectProxy;
+import org.freedesktop.wayland.client.Proxy;
+
+@Extension
+public class ProxyExtension {
+ public static <I> ScopeObjectProxy asScopeObject(@This Proxy<I> thiz) {
+ return new ScopeObjectProxy(thiz);
+ }
+
+ public static <I> @Self Proxy<I> bindTo(@Self @This Proxy<I> thiz, Scope scope) {
+ asScopeObject(thiz).bindTo(scope);
+ return thiz;
+ }
+} \ No newline at end of file