示例#1
0
        private static void RunReadBenchmark(
            Payload payload,
            bool useUtf8)
        {
            // Don't really need to test both serialization formats, since they are similiar.
            IJsonReader jsonReader = JsonReader.Create(payload.Binary);

            while (jsonReader.Read())
            {
                // Materialize the value
                switch (jsonReader.CurrentTokenType)
                {
                case JsonTokenType.BeginArray:
                case JsonTokenType.EndArray:
                    // Single byte tokens
                    break;

                case JsonTokenType.String:
                    UtfAnyString value = jsonReader.GetStringValue();
                    if (useUtf8)
                    {
                        Utf8String _ = value.ToUtf8String();
                    }
                    else
                    {
                        string _ = value.ToString();
                    }
                    break;

                default:
                    throw new ArgumentException("$Unknown token type.");
                }
            }
        }
示例#2
0
            public UInt128 Visit(CosmosString cosmosString, UInt128 seed)
            {
                UInt128      hash         = seed == RootHashSeed ? RootCache.String : MurmurHash3.Hash128(HashSeeds.String, seed);
                UtfAnyString utfAnyString = cosmosString.Value;

                hash = utfAnyString.IsUtf8
                    ? MurmurHash3.Hash128(utfAnyString.ToUtf8String().Span.Span, hash)
                    : MurmurHash3.Hash128(utfAnyString.ToString(), hash);

                return(hash);
            }
示例#3
0
 public EagerCosmosString(UtfAnyString value)
 {
     this.Value = value;
 }