public CsUpdate this[int i] { get { ulong bit = ((ulong)1) << i; int val = 0; if ((vals.Item2 & bit) != 0) { val = val | 1; } if ((vals.Item3 & bit) != 0) { val = val | 2; } if ((vals.Item4 & bit) != 0) { val = val | 4; } CsUpdate res = (CsUpdate)val; return(res); } }
public CsUpdateSeq Or(int i, CsUpdate upd) { ulong bit = ((ulong)1) << i; ulong set0 = vals.Item2; ulong set1 = vals.Item3; ulong incr = vals.Item4; if (upd.HasFlag(CsUpdate.SET0)) { set0 = set0 | bit; } if (upd.HasFlag(CsUpdate.SET1)) { set1 = set1 | bit; } if (upd.HasFlag(CsUpdate.INCR)) { incr = incr | bit; } CsUpdateSeq res = new CsUpdateSeq(vals.Item1, set0, set1, incr); return(res); }