示例#1
0
            public static Payload CreateStringLength(int length)
            {
                string stringValue = new string('a', length);
                IJsonWriter jsonTextWriter = JsonWriter.Create(JsonSerializationFormat.Text);
                IJsonWriter jsonBinaryWriter = JsonWriter.Create(JsonSerializationFormat.Binary);

                jsonTextWriter.WriteArrayStart();
                jsonBinaryWriter.WriteArrayStart();

                for (int i = 0; i < 100000; i++)
                {
                    jsonTextWriter.WriteStringValue(stringValue);
                }

                jsonTextWriter.WriteArrayEnd();
                jsonBinaryWriter.WriteArrayEnd();

                ReadOnlyMemory<byte> text = jsonTextWriter.GetResult();
                ReadOnlyMemory<byte> binary = jsonTextWriter.GetResult();

                return new Payload(
                    text: text, 
                    binary: binary,
                    utf8StringToken: Utf8Memory.UnsafeCreateNoValidation(Encoding.UTF8.GetBytes(stringValue)),
                    utf16StringToken: stringValue);
            }
示例#2
0
 public IStateProperty GetProperty(Utf8Memory name)
 {
     if (TryGetProperty(name, out IStateProperty? property))
     {
         return(property);
     }
     throw new KeyNotFoundException();
 }
示例#3
0
 private Payload(
     ReadOnlyMemory<byte> text,
     ReadOnlyMemory<byte> binary,
     Utf8Memory utf8StringToken,
     string utf16StringToken)
 {
     this.Text = text;
     this.Binary = binary;
     this.Utf8StringToken = utf8StringToken;
     this.Utf16StringToken = utf16StringToken;
 }
示例#4
0
 public bool TryGetProperty(Utf8Memory name, [MaybeNullWhen(false)] out IStateProperty property)
 {
     foreach (IStateProperty prop in _properties)
     {
         if (prop.Name == name)
         {
             property = prop;
             return(true);
         }
     }
     property = null;
     return(false);
 }
 public static StatePropertyValue <T> GetPropertyValue <T>(this IStateProperty <T> property, Utf8Memory name)
 {
     return(property.GetPropertyValue(property.GetIndex(name)));
 }
 public override bool TryGetBufferedStringValue(IJsonNavigatorNode stringNode, out Utf8Memory bufferedStringValue)
 {
     bufferedStringValue = default;
     return(false);
 }
示例#7
0
 public override bool TryGetBufferedStringValue(out Utf8Memory bufferedUtf8StringValue)
 {
     bufferedUtf8StringValue = default;
     return(false);
 }
示例#8
0
 public override bool TryGetBufferedValue(out Utf8Memory bufferedValue)
 {
     return(this.jsonNavigator.TryGetBufferedStringValue(this.jsonNavigatorNode, out bufferedValue));
 }
示例#9
0
 public override bool TryGetBufferedValue(out Utf8Memory bufferedValue)
 {
     // Eager string only has the materialized value, so this method will always return false.
     bufferedValue = default;
     return(false);
 }
 public abstract bool TryGetBufferedValue(out Utf8Memory bufferedUtf8Value);
 public abstract int GetIndex(Utf8Memory value);
 public int GetIndex(Utf8Memory value)
 {
     return(Property.GetIndex(value));
 }
示例#13
0
 public override int GetIndex(Utf8Memory value)
 {
     _ = Utf8Parser.TryParse(value.Span, out bool rawValue, out _);
     return(GetIndex(rawValue));
 }
示例#14
0
 public BlockDescription this[Utf8Memory identifier] => _blockLookup[Utf8Identifier.CreateUnsafe(identifier)];
示例#15
0
 public                       NbtElement this[Utf8Memory utf8Name] => GetCompoundElement(utf8Name);