public AimeResponse Dispatch(AimeRequest request) { switch (request) { case HelloRequest hello: return(Hello(hello)); case CampaignRequest campaign: return(Campaign(campaign)); case FeliCaLookupRequest feliCaLookup: return(FeliCaLookup(feliCaLookup)); case LookupRequest lookup: return(Lookup(lookup)); case Lookup2Request lookup2: return(Lookup2(lookup2)); case RegisterRequest register: return(Register(register)); case LogRequest log: return(Log(log)); case GoodbyeRequest goodbye: return(Goodbye(goodbye)); } throw new InvalidOperationException($"{request} handler not implemented"); }
private static void DecodeMetadata(AimeRequest request, ref ReadOnlySpan <byte> packet) { request.GameId = Encoding.ASCII.GetString(packet.Slice(10, 4)); request.KeyChipId = Encoding.ASCII.GetString(packet.Slice(20, 11)); }