From b70002eaf31df7dad1869a5b366115170746f01e Mon Sep 17 00:00:00 2001 From: Jens Nolte <git@queezle.net> Date: Thu, 16 Sep 2021 23:14:06 +0200 Subject: [PATCH] Hide Protocol.Core and move implementation-facing exports to Protocol --- quasar-wayland.cabal | 3 +- src/Quasar/Wayland/Client.hs | 2 -- src/Quasar/Wayland/Connection.hs | 2 +- src/Quasar/Wayland/Display.hs | 2 +- src/Quasar/Wayland/Protocol.hs | 43 +++++++++++++++++++++++++++++ src/Quasar/Wayland/Protocol/Core.hs | 4 +-- src/Quasar/Wayland/Registry.hs | 2 +- 7 files changed, 50 insertions(+), 8 deletions(-) diff --git a/quasar-wayland.cabal b/quasar-wayland.cabal index 555283e..2acb8c1 100644 --- a/quasar-wayland.cabal +++ b/quasar-wayland.cabal @@ -87,11 +87,12 @@ library Quasar.Wayland.Connection Quasar.Wayland.Display Quasar.Wayland.Protocol - Quasar.Wayland.Protocol.Core Quasar.Wayland.Protocol.Display Quasar.Wayland.Protocol.Generated Quasar.Wayland.Protocol.TH Quasar.Wayland.Registry + other-modules: + Quasar.Wayland.Protocol.Core build-depends: base >=4.7 && <5, binary, diff --git a/src/Quasar/Wayland/Client.hs b/src/Quasar/Wayland/Client.hs index 8ecd959..9401c94 100644 --- a/src/Quasar/Wayland/Client.hs +++ b/src/Quasar/Wayland/Client.hs @@ -14,8 +14,6 @@ import Quasar.Prelude import Quasar.Wayland.Connection import Quasar.Wayland.Display import Quasar.Wayland.Protocol -import Quasar.Wayland.Protocol.Core -import Quasar.Wayland.Protocol.Generated import System.Environment (getEnv, lookupEnv) import System.FilePath ((</>), isRelative) import Text.Read (readEither) diff --git a/src/Quasar/Wayland/Connection.hs b/src/Quasar/Wayland/Connection.hs index 3baae68..5b5f1db 100644 --- a/src/Quasar/Wayland/Connection.hs +++ b/src/Quasar/Wayland/Connection.hs @@ -13,7 +13,7 @@ import Network.Socket.ByteString qualified as Socket import Network.Socket.ByteString.Lazy qualified as SocketL import Quasar import Quasar.Prelude -import Quasar.Wayland.Protocol.Core +import Quasar.Wayland.Protocol data WaylandConnection s = WaylandConnection { diff --git a/src/Quasar/Wayland/Display.hs b/src/Quasar/Wayland/Display.hs index 5c2fbb5..7130da2 100644 --- a/src/Quasar/Wayland/Display.hs +++ b/src/Quasar/Wayland/Display.hs @@ -8,7 +8,7 @@ import Control.Monad.Catch import Data.ByteString.UTF8 qualified as BS import Data.HashMap.Strict qualified as HM import Quasar.Prelude -import Quasar.Wayland.Protocol.Core +import Quasar.Wayland.Protocol import Quasar.Wayland.Protocol.Display import Quasar.Wayland.Protocol.Generated import Quasar.Wayland.Registry diff --git a/src/Quasar/Wayland/Protocol.hs b/src/Quasar/Wayland/Protocol.hs index e0b431c..1d6acea 100644 --- a/src/Quasar/Wayland/Protocol.hs +++ b/src/Quasar/Wayland/Protocol.hs @@ -1,2 +1,45 @@ module Quasar.Wayland.Protocol ( + -- * Wayland wire protocol + -- | This module exports everything required to implement Wayland interfaces generated by + -- 'Quasar.Wayland.Protocol.TH'. + + -- ** Wire types + ObjectId, + GenericObjectId, + NewId(..), + Fixed(..), + + -- ** Classes for generated interfaces + IsInterface(Request, Event, InterfaceName, interfaceName), + Side(..), + IsSide(Up, Down), + IsInterfaceSide, + + -- ** Protocol execution + ProtocolHandle, + initializeProtocol, + feedInput, + takeOutbox, + setException, + + -- ** Low-level protocol interaction + ProtocolM, + runProtocolM, + Object, + newObject, + sendMessage, + + Callback(..), + internalFnCallback, + traceCallback, + ignoreMessage, + + -- * Protocol exceptions + CallbackFailed(..), + ParserFailed(..), + ProtocolException(..), + MaximumIdReached(..), + ServerError(..), ) where + +import Quasar.Wayland.Protocol.Core diff --git a/src/Quasar/Wayland/Protocol/Core.hs b/src/Quasar/Wayland/Protocol/Core.hs index 4965456..739ef22 100644 --- a/src/Quasar/Wayland/Protocol/Core.hs +++ b/src/Quasar/Wayland/Protocol/Core.hs @@ -3,10 +3,10 @@ module Quasar.Wayland.Protocol.Core ( ObjectId, GenericObjectId, - NewId(..), + NewId, Opcode, ArgumentType(..), - Fixed, + Fixed(..), IsSide(..), Side(..), IsInterface(..), diff --git a/src/Quasar/Wayland/Registry.hs b/src/Quasar/Wayland/Registry.hs index 0e47877..23555aa 100644 --- a/src/Quasar/Wayland/Registry.hs +++ b/src/Quasar/Wayland/Registry.hs @@ -11,7 +11,7 @@ import Data.ByteString.UTF8 qualified as BS import Data.HashMap.Strict qualified as HM import Data.Tuple (swap) import Quasar.Prelude -import Quasar.Wayland.Protocol.Core +import Quasar.Wayland.Protocol import Quasar.Wayland.Protocol.Generated data ClientRegistry = ClientRegistry { -- GitLab