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"));
 }
Example #6
0
 public Component(IJsonArgument argument)
 {
     Argument = argument;
 }
 public void Add(string name, IJsonArgument argument)
 {
     Arguments[name] = argument;
 }
Example #8
0
 public void Add(IJsonArgument argument)
 {
     Arguments.Add(argument);
 }