public ReadResults ValidateFromRoot(IJsonArgument json, Components components) { ComponentArgument root = components.GetRootComponent(); JsonObject rootObject = new JsonObject(); rootObject.Add("root", json); return(root.Validate(rootObject, "root", this, components, StringReader, Start, Resources)); }
public ReadResults ReadSpecial(out IJsonArgument result) { int start = StringReader.GetCursor(); while (StringReader.CanRead() && IsAllowedInput(StringReader.Peek())) { StringReader.Skip(); } string s = StringReader.GetString()[start..StringReader.GetCursor()];
public ReadResults ReadAny(out IJsonArgument result) { result = new JsonNull(); SkipWhitespace(); if (!StringReader.CanRead()) { return(ReadResults.Success()); } ReadResults readResults; switch (StringReader.Peek()) { case OBJECT_OPEN_CHARACTER: readResults = ReadObject(out JsonObject objectResult); if (readResults.Successful) { result = objectResult; } return(readResults); case ARRAY_OPEN_CHARACTER: readResults = ReadArray(out JsonArray arrayResult); if (readResults.Successful) { result = arrayResult; } return(readResults); case STRING_CHARACTER: readResults = ReadString(out JsonString stringResult); if (readResults.Successful) { result = stringResult; } return(readResults); default: return(ReadSpecial(out result)); } }
public ReadResults ValidateContents(IJsonArgument json, Components components) { if (json is JsonNull) { StringReader.SetCursor(Start); return(ReadResults.Failure(ComponentCommandError.UnknownComponent(json).WithContext(StringReader))); } else if (json is JsonObject jsonObject) { return(ValidateObject(jsonObject, components)); } else if (json is JsonArray jsonArray) { return(ValidateArray(jsonArray, components)); } else { return(ReadResults.Success()); } }
public static CommandError UnknownComponent(IJsonArgument json) { return(CommandError.InvalidChatComponent($"Don't know how to turn {json.AsJson()} into a component")); }
public Component(IJsonArgument argument) { Argument = argument; }
public void Add(string name, IJsonArgument argument) { Arguments[name] = argument; }
public void Add(IJsonArgument argument) { Arguments.Add(argument); }