public T ReadRecurrant <T>(Husker <T> husker) { int id = reader.ReadInt32(); if (id < recurrant_objects.Count) { return(recurrant_objects[id].Convert <T>()); } recurrant_objects.Add(null); T value = husker.Hydrate(this); recurrant_objects[id] = value; return(value); }
public void WriteRecurrant <T>(T value, Husker <T> husker) { int id; if (recurrant_objects.TryGetValue(value, out id)) { writer.Write(id); } else { id = next_id++; writer.Write(id); recurrant_objects.Add(value, id); husker.Dehydrate(this, value); } }
public ListHusker(Husker <T> h) { husker = h; }