Skip to content

Instantly share code, notes, and snippets.

@okankayhan
okankayhan / DList.cs
Last active September 14, 2025 14:44
A fixed size list for deterministic games that uses MemoryPack. Can be modified for any other serializer
[MemoryPackable(GenerateType.CircularReference, SerializeLayout.Explicit)]
public partial class DList<T> : IList<T>
{
[MemoryPackInclude][MemoryPackOrder(0)] private int _count;
[MemoryPackInclude][MemoryPackOrder(1)] private T[] _buffer;
/// <summary>
/// Current number of elements in the list
/// </summary>
[MemoryPackIgnore] public int Count => _count;
@okankayhan
okankayhan / DDictionary.cs
Last active September 14, 2025 15:12
Deterministic lookup implementation with MemoryPack serialization
using System;
using System.Collections.Generic;
using MemoryPack;
/// <summary>
/// A deterministic dictionary implementation optimized for lookups only.
/// Uses arrays for keys and values with a hash table for O(1) lookups.
/// Maintains MemoryPack serialization compatibility and preserves references.
/// </summary>
[MemoryPackable(GenerateType.CircularReference, SerializeLayout.Explicit)]