MessageKind.fromJson constructor

MessageKind.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory MessageKind.fromJson(Map<String, dynamic> json) {
  final tag = json['type'] as String;
  return switch (tag) {
    'privmsg' => MessageKindPrivmsg.fromJson(json),
    'notice' => MessageKindNotice.fromJson(json),
    'ctcp' => MessageKindCtcp.fromJson(json),
    'tagmsg' => MessageKindTagmsg.fromJson(json),
    'join' => MessageKindJoin.fromJson(json),
    'part' => MessageKindPart.fromJson(json),
    'quit' => MessageKindQuit.fromJson(json),
    'kick' => MessageKindKick.fromJson(json),
    'nick' => MessageKindNick.fromJson(json),
    'topic' => MessageKindTopic.fromJson(json),
    'mode' => MessageKindMode.fromJson(json),
    _ => throw ArgumentError.value(tag, 'type', 'unknown MessageKind variant'),
  };
}