simplex-chat-6.5.0.7
Safe HaskellNone
LanguageHaskell2010

Simplex.Chat.Messages.CIContent

Synopsis

Documentation

data MsgDirection Source #

Constructors

MDRcv 
MDSnd 

Instances

Instances details
FromJSON MsgDirection Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

parseJSON :: Value -> Parser MsgDirection

parseJSONList :: Value -> Parser [MsgDirection]

omittedField :: Maybe MsgDirection

ToJSON MsgDirection Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

toJSON :: MsgDirection -> Value

toEncoding :: MsgDirection -> Encoding

toJSONList :: [MsgDirection] -> Value

toEncodingList :: [MsgDirection] -> Encoding

omitField :: MsgDirection -> Bool

Show MsgDirection Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

showsPrec :: Int -> MsgDirection -> ShowS

show :: MsgDirection -> String

showList :: [MsgDirection] -> ShowS

Eq MsgDirection Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

(==) :: MsgDirection -> MsgDirection -> Bool

(/=) :: MsgDirection -> MsgDirection -> Bool

FromField MsgDirection Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

fromField :: FieldParser MsgDirection #

ToField MsgDirection Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

toField :: MsgDirection -> SQLData #

TestEquality SMsgDirection Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

testEquality :: forall (a :: MsgDirection) (b :: MsgDirection). SMsgDirection a -> SMsgDirection b -> Maybe (a :~: b)

data SMsgDirection (d :: MsgDirection) where Source #

Instances

Instances details
TestEquality SMsgDirection Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

testEquality :: forall (a :: MsgDirection) (b :: MsgDirection). SMsgDirection a -> SMsgDirection b -> Maybe (a :~: b)

MsgDirectionI d => FromJSON (SMsgDirection d) Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

parseJSON :: Value -> Parser (SMsgDirection d)

parseJSONList :: Value -> Parser [SMsgDirection d]

omittedField :: Maybe (SMsgDirection d)

ToJSON (SMsgDirection d) Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

toJSON :: SMsgDirection d -> Value

toEncoding :: SMsgDirection d -> Encoding

toJSONList :: [SMsgDirection d] -> Value

toEncodingList :: [SMsgDirection d] -> Encoding

omitField :: SMsgDirection d -> Bool

Show (SMsgDirection d) Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

showsPrec :: Int -> SMsgDirection d -> ShowS

show :: SMsgDirection d -> String

showList :: [SMsgDirection d] -> ShowS

ToField (SMsgDirection d) Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

toField :: SMsgDirection d -> SQLData #

data AMsgDirection Source #

Instances

Instances details
Show AMsgDirection Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

showsPrec :: Int -> AMsgDirection -> ShowS

show :: AMsgDirection -> String

showList :: [AMsgDirection] -> ShowS

FromField AMsgDirection Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

fromField :: FieldParser AMsgDirection #

checkDirection :: forall t (d :: MsgDirection) (d' :: MsgDirection). (MsgDirectionI d, MsgDirectionI d') => t d' -> Either String (t d) Source #

data CIDeleteMode Source #

Instances

Instances details
FromJSON CIDeleteMode Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

parseJSON :: Value -> Parser CIDeleteMode

parseJSONList :: Value -> Parser [CIDeleteMode]

omittedField :: Maybe CIDeleteMode

ToJSON CIDeleteMode Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

toJSON :: CIDeleteMode -> Value

toEncoding :: CIDeleteMode -> Encoding

toJSONList :: [CIDeleteMode] -> Value

toEncodingList :: [CIDeleteMode] -> Encoding

omitField :: CIDeleteMode -> Bool

Show CIDeleteMode Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

showsPrec :: Int -> CIDeleteMode -> ShowS

show :: CIDeleteMode -> String

showList :: [CIDeleteMode] -> ShowS

StrEncoding CIDeleteMode Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

strEncode :: CIDeleteMode -> ByteString

strDecode :: ByteString -> Either String CIDeleteMode

strP :: Parser CIDeleteMode

data CIContent (d :: MsgDirection) where Source #

This type is used both in API and in DB, so we use different JSON encodings for the database and for the API ! ^ Nested sum types also have to use different encodings for database and API ! ^ to avoid breaking cross-platform compatibility, see RcvGroupEvent and SndGroupEvent

Constructors

CISndMsgContent :: MsgContent -> CIContent 'MDSnd 
CIRcvMsgContent :: MsgContent -> CIContent 'MDRcv 
CISndDeleted :: CIDeleteMode -> CIContent 'MDSnd 
CIRcvDeleted :: CIDeleteMode -> CIContent 'MDRcv 
CISndCall :: CICallStatus -> Int -> CIContent 'MDSnd 
CIRcvCall :: CICallStatus -> Int -> CIContent 'MDRcv 
CIRcvIntegrityError :: MsgErrorType -> CIContent 'MDRcv 
CIRcvDecryptionError :: MsgDecryptError -> Word32 -> CIContent 'MDRcv 
CIRcvGroupInvitation :: CIGroupInvitation -> GroupMemberRole -> CIContent 'MDRcv 
CISndGroupInvitation :: CIGroupInvitation -> GroupMemberRole -> CIContent 'MDSnd 
CIRcvDirectEvent :: RcvDirectEvent -> CIContent 'MDRcv 
CIRcvGroupEvent :: RcvGroupEvent -> CIContent 'MDRcv 
CISndGroupEvent :: SndGroupEvent -> CIContent 'MDSnd 
CIRcvConnEvent :: RcvConnEvent -> CIContent 'MDRcv 
CISndConnEvent :: SndConnEvent -> CIContent 'MDSnd 
CIRcvChatFeature :: ChatFeature -> PrefEnabled -> Maybe Int -> CIContent 'MDRcv 
CISndChatFeature :: ChatFeature -> PrefEnabled -> Maybe Int -> CIContent 'MDSnd 
CIRcvChatPreference :: ChatFeature -> FeatureAllowed -> Maybe Int -> CIContent 'MDRcv 
CISndChatPreference :: ChatFeature -> FeatureAllowed -> Maybe Int -> CIContent 'MDSnd 
CIRcvGroupFeature :: GroupFeature -> GroupPreference -> Maybe Int -> Maybe GroupMemberRole -> CIContent 'MDRcv 
CISndGroupFeature :: GroupFeature -> GroupPreference -> Maybe Int -> Maybe GroupMemberRole -> CIContent 'MDSnd 
CIRcvChatFeatureRejected :: ChatFeature -> CIContent 'MDRcv 
CIRcvGroupFeatureRejected :: GroupFeature -> CIContent 'MDRcv 
CISndModerated :: CIContent 'MDSnd 
CIRcvModerated :: CIContent 'MDRcv 
CIRcvBlocked :: CIContent 'MDRcv 
CISndDirectE2EEInfo :: E2EInfo -> CIContent 'MDSnd 
CIRcvDirectE2EEInfo :: E2EInfo -> CIContent 'MDRcv 
CISndGroupE2EEInfo :: E2EInfo -> CIContent 'MDSnd 
CIRcvGroupE2EEInfo :: E2EInfo -> CIContent 'MDRcv 
CIChatBanner :: CIContent 'MDSnd 
CIInvalidJSON :: forall (d :: MsgDirection). Text -> CIContent d 

Instances

Instances details
MsgDirectionI d => FromJSON (CIContent d) Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

parseJSON :: Value -> Parser (CIContent d)

parseJSONList :: Value -> Parser [CIContent d]

omittedField :: Maybe (CIContent d)

MsgDirectionI d => ToJSON (CIContent d) Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

toJSON :: CIContent d -> Value

toEncoding :: CIContent d -> Encoding

toJSONList :: [CIContent d] -> Value

toEncodingList :: [CIContent d] -> Encoding

omitField :: CIContent d -> Bool

Show (CIContent d) Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

showsPrec :: Int -> CIContent d -> ShowS

show :: CIContent d -> String

showList :: [CIContent d] -> ShowS

MsgDirectionI d => ToField (CIContent d) Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

toField :: CIContent d -> SQLData #

data E2EInfo Source #

Constructors

E2EInfo 

Fields

Instances

Instances details
FromJSON E2EInfo Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

parseJSON :: Value -> Parser E2EInfo

parseJSONList :: Value -> Parser [E2EInfo]

omittedField :: Maybe E2EInfo

ToJSON E2EInfo Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

toJSON :: E2EInfo -> Value

toEncoding :: E2EInfo -> Encoding

toJSONList :: [E2EInfo] -> Value

toEncodingList :: [E2EInfo] -> Encoding

omitField :: E2EInfo -> Bool

Show E2EInfo Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

showsPrec :: Int -> E2EInfo -> ShowS

show :: E2EInfo -> String

showList :: [E2EInfo] -> ShowS

Eq E2EInfo Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

(==) :: E2EInfo -> E2EInfo -> Bool

(/=) :: E2EInfo -> E2EInfo -> Bool

ciMsgContent :: forall (d :: MsgDirection). CIContent d -> Maybe MsgContent Source #

isCIReport :: forall (d :: MsgDirection). CIContent d -> Bool Source #

data MsgDecryptError Source #

Instances

Instances details
FromJSON MsgDecryptError Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

parseJSON :: Value -> Parser MsgDecryptError

parseJSONList :: Value -> Parser [MsgDecryptError]

omittedField :: Maybe MsgDecryptError

ToJSON MsgDecryptError Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Show MsgDecryptError Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

showsPrec :: Int -> MsgDecryptError -> ShowS

show :: MsgDecryptError -> String

showList :: [MsgDecryptError] -> ShowS

Eq MsgDecryptError Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

newtype DBMsgErrorType Source #

Constructors

DBME MsgErrorType 

Instances

Instances details
FromJSON DBMsgErrorType Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

parseJSON :: Value -> Parser DBMsgErrorType

parseJSONList :: Value -> Parser [DBMsgErrorType]

omittedField :: Maybe DBMsgErrorType

ToJSON DBMsgErrorType Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

toJSON :: DBMsgErrorType -> Value

toEncoding :: DBMsgErrorType -> Encoding

toJSONList :: [DBMsgErrorType] -> Value

toEncodingList :: [DBMsgErrorType] -> Encoding

omitField :: DBMsgErrorType -> Bool

ciContentToText :: forall (d :: MsgDirection). CIContent d -> Text Source #

ratchetSyncStatusToText :: RatchetSyncState -> Text Source #

msgIntegrityError :: MsgErrorType -> Text Source #

data ACIContent Source #

Constructors

MsgDirectionI d => ACIContent (SMsgDirection d) (CIContent d) 

Instances

Instances details
FromJSON ACIContent Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

parseJSON :: Value -> Parser ACIContent

parseJSONList :: Value -> Parser [ACIContent]

omittedField :: Maybe ACIContent

Show ACIContent Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

showsPrec :: Int -> ACIContent -> ShowS

show :: ACIContent -> String

showList :: [ACIContent] -> ShowS

data JSONCIContent Source #

Constructors

JCISndMsgContent 
JCIRcvMsgContent 
JCISndDeleted 
JCIRcvDeleted 
JCISndCall 

Fields

JCIRcvCall 

Fields

JCIRcvIntegrityError 

Fields

JCIRcvDecryptionError 
JCIRcvGroupInvitation 
JCISndGroupInvitation 
JCIRcvDirectEvent 
JCIRcvGroupEvent 
JCISndGroupEvent 
JCIRcvConnEvent 
JCISndConnEvent 
JCIRcvChatFeature 

Fields

JCISndChatFeature 

Fields

JCIRcvChatPreference 

Fields

JCISndChatPreference 

Fields

JCIRcvGroupFeature 
JCISndGroupFeature 
JCIRcvChatFeatureRejected 

Fields

JCIRcvGroupFeatureRejected 
JCISndModerated 
JCIRcvModerated 
JCIRcvBlocked 
JCISndDirectE2EEInfo 

Fields

JCIRcvDirectE2EEInfo 

Fields

JCISndGroupE2EEInfo 

Fields

JCIRcvGroupE2EEInfo 

Fields

JCIChatBanner 
JCIInvalidJSON 

Fields

Instances

Instances details
FromJSON JSONCIContent Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

parseJSON :: Value -> Parser JSONCIContent

parseJSONList :: Value -> Parser [JSONCIContent]

omittedField :: Maybe JSONCIContent

ToJSON JSONCIContent Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

toJSON :: JSONCIContent -> Value

toEncoding :: JSONCIContent -> Encoding

toJSONList :: [JSONCIContent] -> Value

toEncodingList :: [JSONCIContent] -> Encoding

omitField :: JSONCIContent -> Bool

data DBJSONCIContent Source #

Constructors

DBJCISndMsgContent 
DBJCIRcvMsgContent 
DBJCISndDeleted 
DBJCIRcvDeleted 
DBJCISndCall 

Fields

DBJCIRcvCall 

Fields

DBJCIRcvIntegrityError 
DBJCIRcvDecryptionError 
DBJCIRcvGroupInvitation 
DBJCISndGroupInvitation 
DBJCIRcvDirectEvent 
DBJCIRcvGroupEvent 
DBJCISndGroupEvent 
DBJCIRcvConnEvent 
DBJCISndConnEvent 
DBJCIRcvChatFeature 

Fields

DBJCISndChatFeature 

Fields

DBJCIRcvChatPreference 

Fields

DBJCISndChatPreference 

Fields

DBJCIRcvGroupFeature 
DBJCISndGroupFeature 
DBJCIRcvChatFeatureRejected 

Fields

DBJCIRcvGroupFeatureRejected 
DBJCISndModerated 
DBJCIRcvModerated 
DBJCIRcvBlocked 
DBJCISndDirectE2EEInfo 

Fields

DBJCIRcvDirectE2EEInfo 

Fields

DBJCISndGroupE2EEInfo 

Fields

DBJCIRcvGroupE2EEInfo 

Fields

DBJCIChatBanner 
DBJCIInvalidJSON 

Fields

Instances

Instances details
FromJSON DBJSONCIContent Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

parseJSON :: Value -> Parser DBJSONCIContent

parseJSONList :: Value -> Parser [DBJSONCIContent]

omittedField :: Maybe DBJSONCIContent

ToJSON DBJSONCIContent Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

data CICallStatus Source #

Instances

Instances details
FromJSON CICallStatus Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

parseJSON :: Value -> Parser CICallStatus

parseJSONList :: Value -> Parser [CICallStatus]

omittedField :: Maybe CICallStatus

ToJSON CICallStatus Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

toJSON :: CICallStatus -> Value

toEncoding :: CICallStatus -> Encoding

toJSONList :: [CICallStatus] -> Value

toEncodingList :: [CICallStatus] -> Encoding

omitField :: CICallStatus -> Bool

Show CICallStatus Source # 
Instance details

Defined in Simplex.Chat.Messages.CIContent

Methods

showsPrec :: Int -> CICallStatus -> ShowS

show :: CICallStatus -> String

showList :: [CICallStatus] -> ShowS

dbParseACIContent :: Text -> Either String ACIContent Source #

toCIContentTag :: forall (e :: MsgDirection). CIContent e -> Text Source #