README

f4ah6o/moonchat/core does not have a README file

#
ChatStore

pub(all) struct ChatStore {
messages : Array[Message]
typing_users : Array[User]
connected : Bool
message_counter : Int
}

サーバーサイドチャットストア

#
ChatStore::add_message

fn ChatStore::add_message(self : ChatStore, message : Message) -> Unit

メッセージを追加

#
ChatStore::find_message

fn ChatStore::find_message(self : ChatStore, id : String) -> Message?

メッセージをIDで検索

#
ChatStore::get_messages

fn ChatStore::get_messages(self : ChatStore) -> Array[Message]

メッセージリストを取得

#
ChatStore::get_typing_users

fn ChatStore::get_typing_users(self : ChatStore) -> Array[User]

タイピング中ユーザーリストを取得

#
ChatStore::is_connected

fn ChatStore::is_connected(self : ChatStore) -> Bool

接続状態を取得

#
ChatStore::new

fn ChatStore::new() -> ChatStore

新しいストアを作成

#
ChatStore::next_message_id

fn ChatStore::next_message_id(self : ChatStore) -> String

新しいメッセージIDを生成

#
ChatStore::set_connected

fn ChatStore::set_connected(self : ChatStore, connected : Bool) -> Unit

接続状態を設定

#
ChatStore::set_typing_users

fn ChatStore::set_typing_users(self : ChatStore, users : Array[User]) -> Unit

タイピング中ユーザーを設定

#
ChatStore::set_user_typing

fn ChatStore::set_user_typing(self : ChatStore, user : User, typing : Bool) -> Unit

ユーザーのタイピング状態を設定

#
ChatStore::update_message_status

fn ChatStore::update_message_status(self : ChatStore, id : String, status : MessageStatus) -> Bool

メッセージステータスを更新

#
Message

pub struct Message {
id : String
sender : User
content : MessageContent
timestamp_ms : Int64
status : MessageStatus
}

メッセージ(サーバーサイド版 - リアクティブシグナルなし)

#
Message::new

fn Message::new(id : String, sender : User, content : MessageContent, timestamp_ms : Int64, status? : MessageStatus) -> Message

メッセージを作成

#
Message::set_status

fn Message::set_status(self : Message, status : MessageStatus) -> Message

メッセージステータスを更新

#
Message::snapshot

fn Message::snapshot(self : Message) -> MessageSnapshot

スナップショットを作成

#
MessageContent

pub(all) enum MessageContent {
Text(String)
Markdown(String)
Image(String, String?)
System(String)
}

メッセージコンテンツ

#
MessageSnapshot

pub struct MessageSnapshot {
id : String
sender : User
content : MessageContent
timestamp_ms : Int64
status : MessageStatus
}

不変スナップショット

#
MessageStatus

pub(all) enum MessageStatus {
Sending
Sent
Delivered
Read
Failed
}

メッセージ状態
impl Eq for MessageStatus

#
User

pub(all) struct User {
id : String
name : String
avatar_url : String?
}

ユーザー型
impl Eq for User
impl Show for User

#
global_store

let global_store : ChatStore

グローバルストアインスタンス

#
sending_status

fn sending_status() -> MessageStatus

MessageStatus::Sendingを作成

#
sent_status

fn sent_status() -> MessageStatus

MessageStatus::Sentを作成

#
system_content

fn system_content(s : String) -> MessageContent

MessageContent::Systemを作成

#
text_content

fn text_content(s : String) -> MessageContent

MessageContent::Textを作成