forked from aly/qstbak
148 lines
5.2 KiB
C#
148 lines
5.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace Questionable.Model.Converter;
|
|
|
|
public sealed class StringListOrValueConverter : JsonConverter<List<string>>
|
|
{
|
|
public override List<string> Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
|
{
|
|
int num = ((reader.TokenType != JsonTokenType.String) ? 2003232125 : 2003232123);
|
|
List<string> list = default(List<string>);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 2003232122;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 5:
|
|
num = 2003232123;
|
|
break;
|
|
case 1:
|
|
{
|
|
int num7 = 1;
|
|
List<string> list2 = new List<string>(num7);
|
|
CollectionsMarshal.SetCount(list2, num7);
|
|
CollectionsMarshal.AsSpan(list2)[0] = reader.GetString();
|
|
return list2;
|
|
}
|
|
case 0:
|
|
num = ((reader.TokenType != JsonTokenType.EndArray) ? 2003232120 : 2003232126);
|
|
break;
|
|
case 2:
|
|
list.Add(reader.GetString());
|
|
reader.Read();
|
|
num = 2003232122;
|
|
break;
|
|
case 4:
|
|
return list;
|
|
case 6:
|
|
throw _200D_200C_200E_206B_202E_200D_200E_202D_206B_206D_206F_202D_202C_200F_202E_206B_206E_200E_206D_202C_206F_206F_200B_206A_206C_200D_202D_206A_206A_200C_206D_200D_206F_206D_202A_202C_202B_202D_200F_202B_202E();
|
|
case 7:
|
|
num = ((reader.TokenType == JsonTokenType.StartArray) ? 2003232121 : 2003232124);
|
|
break;
|
|
case 3:
|
|
reader.Read();
|
|
list = new List<string>();
|
|
num = 2003232122;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void Write(Utf8JsonWriter writer, List<string>? value, JsonSerializerOptions options)
|
|
{
|
|
int num = ((value != null) ? (-1425131611) : (-1425131610));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1425131609;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
num = -1425131610;
|
|
break;
|
|
case 1:
|
|
_202D_200D_202A_200D_206A_202A_206B_202C_202B_202C_202E_206E_206C_206C_206F_202C_200E_200C_202E_206C_202C_206F_206A_206F_206E_202A_206D_206A_200B_206C_206E_200C_206A_200E_202D_202D_200D_206F_206F_202E_202E(writer);
|
|
return;
|
|
case 4:
|
|
_206A_206C_206B_206D_200B_206B_200B_200D_202A_206C_206E_202C_206E_206E_202E_202C_206A_206C_206A_200F_202E_206B_206E_200F_202A_200B_206D_200E_202E_202B_206B_202A_206B_202E_200E_206E_200B_200E_200D_200C_202E(writer, value[0]);
|
|
return;
|
|
case 2:
|
|
num = ((value.Count != 1) ? (-1425131612) : (-1425131613));
|
|
break;
|
|
case 3:
|
|
{
|
|
_200E_206C_202B_200C_206B_200B_200E_206F_200E_202A_206B_206C_200C_200D_200B_202C_200D_200C_200D_200E_206C_200B_202A_202D_202D_202D_202D_202C_206C_200C_200D_200B_200B_200B_200B_206E_206C_202A_206D_200F_202E(writer);
|
|
using (List<string>.Enumerator enumerator = value.GetEnumerator())
|
|
{
|
|
num = -1381192088;
|
|
while (true)
|
|
{
|
|
int num5 = num;
|
|
num3 = -1381192088;
|
|
num4 = num5;
|
|
int num6 = num4 + num3;
|
|
int num7 = num4 & num3;
|
|
switch (num6 - (num7 + num7))
|
|
{
|
|
case 2:
|
|
num = -1381192088;
|
|
break;
|
|
case 1:
|
|
{
|
|
string current = enumerator.Current;
|
|
_206A_206C_206B_206D_200B_206B_200B_200D_202A_206C_206E_202C_206E_206E_202E_202C_206A_206C_206A_200F_202E_206B_206E_200F_202A_200B_206D_200E_202E_202B_206B_202A_206B_202E_200E_206E_200B_200E_200D_200C_202E(writer, current);
|
|
num = -1381192088;
|
|
break;
|
|
}
|
|
case 0:
|
|
num = (enumerator.MoveNext() ? (-1381192087) : (-1381192085));
|
|
break;
|
|
case 3:
|
|
goto end_IL_00a6;
|
|
}
|
|
continue;
|
|
end_IL_00a6:
|
|
break;
|
|
}
|
|
}
|
|
_206B_202D_206B_200F_202C_206C_200C_206A_202C_202C_202D_200F_200E_200C_200D_200F_206C_200E_202E_206C_206F_202C_202E_200D_206C_206D_206A_200C_202B_206C_206D_202C_200E_202C_202B_206D_200B_200B_206B_202C_202E(writer);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
static JsonException _200D_200C_200E_206B_202E_200D_200E_202D_206B_206D_206F_202D_202C_200F_202E_206B_206E_200E_206D_202C_206F_206F_200B_206A_206C_200D_202D_206A_206A_200C_206D_200D_206F_206D_202A_202C_202B_202D_200F_202B_202E()
|
|
{
|
|
return new JsonException();
|
|
}
|
|
|
|
static void _202D_200D_202A_200D_206A_202A_206B_202C_202B_202C_202E_206E_206C_206C_206F_202C_200E_200C_202E_206C_202C_206F_206A_206F_206E_202A_206D_206A_200B_206C_206E_200C_206A_200E_202D_202D_200D_206F_206F_202E_202E(Utf8JsonWriter P_0)
|
|
{
|
|
P_0.WriteNullValue();
|
|
}
|
|
|
|
static void _206A_206C_206B_206D_200B_206B_200B_200D_202A_206C_206E_202C_206E_206E_202E_202C_206A_206C_206A_200F_202E_206B_206E_200F_202A_200B_206D_200E_202E_202B_206B_202A_206B_202E_200E_206E_200B_200E_200D_200C_202E(Utf8JsonWriter P_0, string P_1)
|
|
{
|
|
P_0.WriteStringValue(P_1);
|
|
}
|
|
|
|
static void _200E_206C_202B_200C_206B_200B_200E_206F_200E_202A_206B_206C_200C_200D_200B_202C_200D_200C_200D_200E_206C_200B_202A_202D_202D_202D_202D_202C_206C_200C_200D_200B_200B_200B_200B_206E_206C_202A_206D_200F_202E(Utf8JsonWriter P_0)
|
|
{
|
|
P_0.WriteStartArray();
|
|
}
|
|
|
|
static void _206B_202D_206B_200F_202C_206C_200C_206A_202C_202C_202D_200F_200E_200C_200D_200F_206C_200E_202E_206C_206F_202C_202E_200D_206C_206D_206A_200C_202B_206C_206D_202C_200E_202C_202B_206D_200B_200B_206B_202C_202E(Utf8JsonWriter P_0)
|
|
{
|
|
P_0.WriteEndArray();
|
|
}
|
|
}
|