public IDisposable ReserveLength() { var offset = Target.Position; Target.Position += kMaxLengthByteCount; var fredTheBanana = new FredTheBanana { Length = -1, Skip = -1 }; var fredIndex = bananas.Count; bananas.Add(fredTheBanana); return(new LengthReservation(offset, Target, bananas, fredIndex, addToByteCountFunc, getByteCountFunc)); }
public CountReservation ReserveCount() { // todo: code duplication var offset = Target.Position; Target.Position += kMaxLengthByteCount; var fredTheBanana = new FredTheBanana { Length = -1, Skip = -1 }; var fredIndex = bananas.Count; bananas.Add(fredTheBanana); return(new CountReservation(offset, Target, bananas, fredIndex, addToByteCountFunc)); }