public BufferedAction(QueryMatchID id, QueryArgs args) : this(ActionKind.ModifySingle)
 {
     QueryId    = id;
     SingleArgs = args;
 }
 public BufferedAction(bool isAdd, QueryMatchID id, QueryArgs args) : this(isAdd ? ActionKind.AddSingle : ActionKind.RemoveSingle)
 {
     QueryId    = id;
     SingleArgs = args;
 }
 static void ModifyQueryNoop(QueryMatchID queryMatchID, QueryArgs queryArgs)
 {
 }
 internal void ModifyQuery(QueryMatchID id, QueryArgs args)
 {
     EnqueueUpdate(new BufferedAction(id, args));
 }
 void AddQuery(QueryMatchID queryMatchID, QueryArgs args)
 {
     EnqueueUpdate(new BufferedAction(true, queryMatchID, args));
 }
 void RegisterQuery(QueryMatchID queryMatchID, QueryArgs queryArgs)
 {
     AddQuery(queryMatchID, queryArgs);
 }