diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-07-02 23:36:30 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-07-02 23:36:30 +0200 |
| commit | 1eae252f41eab7612864fb479263dc93310d8930 (patch) | |
| tree | b10172d42668cb8b5199565c0e2eee4ac3e9c5c3 /src/main/java/mossbar/extensions | |
| download | mossbar-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.java | 25 | ||||
| -rw-r--r-- | src/main/java/mossbar/extensions/org/freedesktop/wayland/client/Proxy/ProxyExtension.java | 20 |
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 |
