Every /// line in GameCult.Caching and GameCult.Caching.MessagePack goes; they restated member names. Three blocks that state a rule stay as // comments: MaterializeMissingGlobals runs after hydration so persisted globals win, ExecuteTransactionAsync commits durably before the cache and observers advance, and CommitBatch implementations restore their staged view on failure. Both projects add NoWarn CS1591, since GenerateDocumentationFile is on in src/Directory.Build.props. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
18 lines
708 B
C#
18 lines
708 B
C#
using MessagePack;
|
|
using MessagePack.Formatters;
|
|
|
|
namespace GameCult.Caching;
|
|
|
|
public sealed class CultRecordRefFormatter<T> : IMessagePackFormatter<CultRecordRef<T>>
|
|
{
|
|
public void Serialize(ref MessagePackWriter writer, CultRecordRef<T> value, MessagePackSerializerOptions options)
|
|
{
|
|
options.Resolver.GetFormatterWithVerify<string>().Serialize(ref writer, value.Key.Value, options);
|
|
}
|
|
|
|
public CultRecordRef<T> Deserialize(ref MessagePackReader reader, MessagePackSerializerOptions options)
|
|
{
|
|
var key = options.Resolver.GetFormatterWithVerify<string>().Deserialize(ref reader, options) ?? string.Empty;
|
|
return new CultRecordRef<T>(new CultRecordKey(key));
|
|
}
|
|
}
|