From 96dbf6846d8b4ffec0209f1c430335f679a83fb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sat, 27 Jun 2026 16:48:37 +0200 Subject: Add makeConversation function --- src/Erebos/Conversation.hs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/Erebos') diff --git a/src/Erebos/Conversation.hs b/src/Erebos/Conversation.hs index 78774bd..e46f4a5 100644 --- a/src/Erebos/Conversation.hs +++ b/src/Erebos/Conversation.hs @@ -11,6 +11,7 @@ module Erebos.Conversation ( formatMessageFT, Conversation, + makeConversation, isSameConversation, directMessageConversation, chatroomConversation, @@ -39,6 +40,7 @@ import Data.Text (Text) import Data.Text qualified as T import Data.Time.Format import Data.Time.LocalTime +import Data.Typeable import Erebos.Chatroom import Erebos.Conversation.Class @@ -89,6 +91,12 @@ data Conversation = DirectMessageConversation DirectMessageThread | ChatroomConversation ChatroomState +makeConversation :: ConversationType conv msg => conv -> Conversation +makeConversation conv + | Just x <- cast conv = DirectMessageConversation x + | Just x <- cast conv = ChatroomConversation x + | otherwise = error "unhandled conversation type" + withConversation :: (forall conv msg. ConversationType conv msg => conv -> a) -> Conversation -> a withConversation f (DirectMessageConversation conv) = f conv withConversation f (ChatroomConversation conv) = f conv -- cgit v1.2.3