Skip to content

Commit

Permalink
Merge pull request #86 from hadashiA/ku/fix-unity-assets
Browse files Browse the repository at this point in the history
Update unity missing unity assets
  • Loading branch information
hadashiA authored Jan 24, 2024
2 parents dc1454a + b1de306 commit cadd128
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 7 deletions.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,17 @@ public readonly struct ScalarStyleScope

public class YamlSerializationContext : IDisposable
{
public IYamlFormatterResolver Resolver { get; }
public YamlEmitOptions EmitOptions { get; }
public YamlSerializerOptions Options { get; set; }
public IYamlFormatterResolver Resolver { get; set; }
public YamlEmitOptions EmitOptions { get; set; }

readonly byte[] primitiveValueBuffer;
ArrayBufferWriter<byte>? arrayBufferWriter;

public YamlSerializationContext(YamlSerializerOptions options)
{
primitiveValueBuffer = ArrayPool<byte>.Shared.Rent(64);
Options = options;
Resolver = options.Resolver;
EmitOptions = options.EmitOptions;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@ namespace VYaml.Serialization
{
public class YamlDeserializationContext
{
public IYamlFormatterResolver Resolver { get; }
public YamlSerializerOptions Options { get; set; }
public IYamlFormatterResolver Resolver { get; set; }

readonly Dictionary<Anchor, object?> aliases = new();

public YamlDeserializationContext(YamlSerializerOptions options)
{
Options = options;
Resolver = options.Resolver;
}

Expand Down
25 changes: 21 additions & 4 deletions VYaml.Unity/Assets/VYaml/Runtime/Serialization/YamlSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,23 @@ public static partial class YamlSerializer
[ThreadStatic]
static YamlSerializationContext? serializationContext;

static YamlDeserializationContext GetThreadLocalDeserializationContext(YamlSerializerOptions? options = null)
{
options ??= DefaultOptions;
var contextLocal = deserializationContext ??= new YamlDeserializationContext(options);
contextLocal.Resolver = options.Resolver;
return contextLocal;
}

static YamlSerializationContext GetThreadLocalSerializationContext(YamlSerializerOptions? options = null)
{
options ??= DefaultOptions;
var contextLocal = serializationContext ??= new YamlSerializationContext(options);
contextLocal.Resolver = options.Resolver;
contextLocal.EmitOptions = options.EmitOptions;
return contextLocal;
}

public static YamlSerializerOptions DefaultOptions
{
get => defaultOptions ??= YamlSerializerOptions.Standard;
Expand All @@ -50,7 +67,7 @@ public static YamlSerializerOptions DefaultOptions
public static ReadOnlyMemory<byte> Serialize<T>(T value, YamlSerializerOptions? options = null)
{
options ??= DefaultOptions;
var contextLocal = serializationContext ??= new YamlSerializationContext(options);
var contextLocal = GetThreadLocalSerializationContext(options);
var writer = contextLocal.GetArrayBufferWriter();
var emitter = new Utf8YamlEmitter(writer);
contextLocal.Reset();
Expand All @@ -68,7 +85,7 @@ public static void Serialize<T>(IBufferWriter<byte> writer, T value, YamlSeriali
public static void Serialize<T>(ref Utf8YamlEmitter emitter, T value, YamlSerializerOptions? options = null)
{
options ??= DefaultOptions;
var contextLocal = serializationContext ??= new YamlSerializationContext(options);
var contextLocal = GetThreadLocalSerializationContext(options);
contextLocal.Reset();

var formatter = contextLocal.Resolver.GetFormatterWithVerify<T>();
Expand Down Expand Up @@ -110,7 +127,7 @@ public static async ValueTask<T> DeserializeAsync<T>(Stream stream, YamlSerializ
public static T Deserialize<T>(ref YamlParser parser, YamlSerializerOptions? options = null)
{
options ??= DefaultOptions;
var contextLocal = deserializationContext ??= new YamlDeserializationContext(options);
var contextLocal = GetThreadLocalDeserializationContext(options);
contextLocal.Reset();

parser.SkipAfter(ParseEventType.DocumentStart);
Expand Down Expand Up @@ -150,7 +167,7 @@ public static IEnumerable<T> DeserializeMultipleDocuments<T>(ref YamlParser pars
// try
// {
options ??= DefaultOptions;
var contextLocal = deserializationContext ??= new YamlDeserializationContext(options);
var contextLocal = GetThreadLocalDeserializationContext(options);
var formatter = options.Resolver.GetFormatterWithVerify<T>();
var documents = new List<T>();

Expand Down

0 comments on commit cadd128

Please sign in to comment.