public void CollisionCheck() { Formatter <DefaultResolver, HashCollision> .Register(new TestFormatter()); ZeroFormatterEqualityComparer <HashCollision> .Register(new HashCollisionEqualityComparer()); var dict = new DictionarySegment <DefaultResolver, HashCollision, int>(new DirtyTracker(), 5); dict.Add(new HashCollision(10, 999), 6); dict.Add(new HashCollision(99, 999), 9); dict[new HashCollision(10, 999)].Is(6); dict[new HashCollision(99, 999)].Is(9); }
DictionarySegment <DefaultResolver, int, string> CreateFresh() { ILazyDictionary <int, string> sampleDict = new Dictionary <int, string>() { { 1234, "aaaa" }, { -1, "mainasu" }, { -42432, "more mainasu" }, { 99999, "plus plus" } }.AsLazyDictionary(); var bytes = ZeroFormatterSerializer.Serialize(sampleDict); int _; return(DictionarySegment <DefaultResolver, int, string> .Create(new DirtyTracker(), bytes, 0, out _)); }
public override int Serialize(ref byte[] bytes, int offset, ILazyReadOnlyDictionary <TKey, TValue> value) { if (value == null) { BinaryUtil.WriteInt32(ref bytes, offset, -1); return(4); } var dictionary = value as DictionarySegment <TKey, TValue>; if (dictionary == null) { dictionary = new DictionarySegment <TKey, TValue>(new DirtyTracker(offset), value.Count); foreach (var item in value) { dictionary.Add(item.Key, item.Value); } } return(dictionary.Serialize(ref bytes, offset)); }
public override ILazyReadOnlyDictionary <TKey, TValue> Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize) { return(DictionarySegment <TKey, TValue> .Create(tracker, bytes, offset, out byteSize)); }