summaryrefslogtreecommitdiff
path: root/lib/chessh/ssh/screens/screen.ex
diff options
context:
space:
mode:
authorSimponic <loganhunt@simponic.xyz>2023-01-04 00:03:38 -0700
committerSimponic <loganhunt@simponic.xyz>2023-01-04 00:03:38 -0700
commit93ae544684b29db30c6c65a5ba5e7cb51972123c (patch)
tree70ea4e1c8fe43a60434d38ec44cb58a9499f3bbc /lib/chessh/ssh/screens/screen.ex
parent720a110c957a9ac1399ca3d2324b5b2cf8bbf3c6 (diff)
downloadchessh-93ae544684b29db30c6c65a5ba5e7cb51972123c.tar.gz
chessh-93ae544684b29db30c6c65a5ba5e7cb51972123c.zip
Create a Screen module behaviour, some ascii character arts, handle_input does stuff now
Diffstat (limited to 'lib/chessh/ssh/screens/screen.ex')
-rw-r--r--lib/chessh/ssh/screens/screen.ex15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/chessh/ssh/screens/screen.ex b/lib/chessh/ssh/screens/screen.ex
new file mode 100644
index 0000000..be6e00e
--- /dev/null
+++ b/lib/chessh/ssh/screens/screen.ex
@@ -0,0 +1,15 @@
+defmodule Chessh.SSH.Client.Screen do
+ @callback render(state :: Chessh.SSH.Client.State.t() | any()) :: any()
+ @callback handle_input(action :: any(), state :: Chessh.SSH.Client.State.t()) ::
+ Chessh.SSH.Client.State.t()
+
+ defmacro __using__(_) do
+ quote do
+ @behaviour Chessh.SSH.Client.Screen
+
+ @ascii_chars Application.compile_env!(:chessh, :ascii_chars_json_file)
+ |> File.read!()
+ |> Jason.decode!()
+ end
+ end
+end