Browse Source

Merge pull request #115 from l29ah/master

StreamFeatures Semigroup instance for ghc-8.4 compat
master
Philipp Balzarek 7 years ago committed by GitHub
parent
commit
462153cabf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 24
      source/Network/Xmpp/Types.hs

24
source/Network/Xmpp/Types.hs

@ -95,6 +95,7 @@ import qualified Data.ByteString as BS
import Data.Char (isSpace) import Data.Char (isSpace)
import Data.Conduit import Data.Conduit
import Data.Default import Data.Default
import Data.Semigroup as Sem
import qualified Data.Set as Set import qualified Data.Set as Set
import Data.String (IsString, fromString) import Data.String (IsString, fromString)
import Data.Text (Text) import Data.Text (Text)
@ -735,16 +736,8 @@ data StreamFeatures = StreamFeatures
-- TODO: All feature elements instead? -- TODO: All feature elements instead?
} deriving (Eq, Show) } deriving (Eq, Show)
instance Monoid StreamFeatures where instance Sem.Semigroup StreamFeatures where
mempty = StreamFeatures sf1 <> sf2 =
{ streamFeaturesTls = Nothing
, streamFeaturesMechanisms = []
, streamFeaturesRosterVer = Nothing
, streamFeaturesPreApproval = False
, streamFeaturesSession = Nothing
, streamFeaturesOther = []
}
mappend sf1 sf2 =
StreamFeatures StreamFeatures
{ streamFeaturesTls = mplusOn streamFeaturesTls { streamFeaturesTls = mplusOn streamFeaturesTls
, streamFeaturesMechanisms = mplusOn streamFeaturesMechanisms , streamFeaturesMechanisms = mplusOn streamFeaturesMechanisms
@ -759,6 +752,17 @@ instance Monoid StreamFeatures where
where where
mplusOn f = f sf1 `mplus` f sf2 mplusOn f = f sf1 `mplus` f sf2
instance Monoid StreamFeatures where
mempty = StreamFeatures
{ streamFeaturesTls = Nothing
, streamFeaturesMechanisms = []
, streamFeaturesRosterVer = Nothing
, streamFeaturesPreApproval = False
, streamFeaturesSession = Nothing
, streamFeaturesOther = []
}
mappend = (<>)
-- | Signals the state of the stream connection. -- | Signals the state of the stream connection.
data ConnectionState data ConnectionState
= Closed -- ^ Stream has not been established yet = Closed -- ^ Stream has not been established yet

Loading…
Cancel
Save