コード例 #1
0
        public ISigo Set1(string key, ISigo value)
        {
            switch (value.Flags & Bits.CPLMR)
            {
            case Bits.MR: return(this);

            case Bits.LMR: return(Sigo.Create(Bits.LMR));

            default: return(Sigo.Create(Bits.LMR).Set1(key, value));
            }
        }
コード例 #2
0
ファイル: SigoTree.cs プロジェクト: damphat/Sigobase
        private ISigo Delete(int rf, string key)
        {
            rf = Bits.CountDown(rf);
            if (Bits.IsEmpty(rf))
            {
                return(Sigo.Create(Bits.Proton(rf)));
            }

            if (Bits.IsFrozen(rf))
            {
                return(new SigoTree(Bits.RemoveFrozen(rf), DictCloneRemove(key)));
            }
            else
            {
                Flags = rf;
                DictRemove(key);
                return(this);
            }
        }
コード例 #3
0
ファイル: SigoTree.cs プロジェクト: damphat/Sigobase
        private ISigo SetFlags(int rf)
        {
            if (rf == Flags)
            {
                return(this);
            }

            if (Bits.IsEmpty(rf))
            {
                return(Sigo.Create(Bits.Proton(rf)));
            }

            if (Bits.IsFrozen(rf))
            {
                return(new SigoTree(Bits.RemoveFrozen(rf), DictClone()));
            }
            else
            {
                Flags = rf;
                return(this);
            }
        }
コード例 #4
0
ファイル: SigoTree.cs プロジェクト: damphat/Sigobase
 public ISigo Get1(string key)
 {
     Paths.CheckKey(key);
     return(TryGetValue(key, out var value) ? value : Sigo.Create(Bits.Def(Flags)));
 }
コード例 #5
0
 public ISigo Get1(string key)
 {
     Paths.CheckKey(key);
     return(Sigo.Create(Bits.MR));
 }