#pragma warning disable IDE0051 // Remove unused private members (compile-time test to ensure interfaces are correct) private static void InterfaceSanityCheck <T>(IPersistedObjectSpace space) { // // Value // var value = space.GetValue <int>("foo"); // IPersisted _ = value.Id; // IPersistedValue<T>, IValue<T> _ = value.Value; value.Value = default; // IReadOnlyValue<T> _ = ((IReadOnlyValue <int>)value).Value; // // Array // var array = space.GetArray <int>("foo"); // IPersisted _ = array.Id; // IArray<T> _ = array.Length; _ = array[default];
public override IPersistedLinkedList <T> GetResult(IPersistedObjectSpace space) => space.CreateLinkedList <T>(Id);
public override IPersistedArray <T> GetResult(IPersistedObjectSpace space) => space.CreateArray <T>(Id, Length);
public override IPersistedArray <T> GetResult(IPersistedObjectSpace space) => space.GetArray <T>(Id);
public override IPersistedValue <T> GetResult(IPersistedObjectSpace space) => space.GetValue <T>(Id);
public abstract TResult GetResult(IPersistedObjectSpace space);
public sealed override void Accept(IPersistedObjectSpace space) => _ = GetResult(space);
public override void Accept(IPersistedObjectSpace space) => space.Delete(Id);