create() private method

private create ( ) : PersistentVector
return PersistentVector
Ejemplo n.º 1
0
        static public IPersistentVector create(object obj)
        {
            IReduceInit ri = obj as IReduceInit;

            if (ri != null)
            {
                return(PersistentVector.create(ri));
            }

            ISeq iseq = obj as ISeq;

            if (iseq != null)
            {
                return(PersistentVector.create(RT.seq(obj)));
            }

            IEnumerable ie = obj as IEnumerable;

            if (ie != null)
            {
                return(PersistentVector.create1(ie));
            }

            return(createOwning(RT.toArray(obj)));
        }
        static public IPersistentVector create(object obj)
        {
            //if ((obj is Counted || RT.SupportsRandomAccess(obj))
            //    && fcount(obj) <= Tuple.MAX_SIZE)
            //    return Tuple.createFromColl(obj);

            IReduceInit ri = obj as IReduceInit;

            if (ri != null)
            {
                return(PersistentVector.create(ri));
            }

            ISeq iseq = obj as ISeq;

            if (iseq != null)
            {
                return(PersistentVector.create(RT.seq(obj)));
            }

            IEnumerable ie = obj as IEnumerable;

            if (ie != null)
            {
                return(PersistentVector.create1(ie));
            }

            return(createOwning(RT.toArray(obj)));
        }
Ejemplo n.º 3
0
 static public IPersistentVector create(System.Collections.ICollection coll)
 {
     if (!(coll is ISeq) && coll.Count <= 32)
     {
         object[] array = new object[coll.Count];
         coll.CopyTo(array, 0);
         return(createOwning(array));
     }
     return(PersistentVector.create(RT.seq(coll)));
 }
        static public IPersistentVector createOwning(params object[] items)
        {
            //if (items.Length <= Tuple.MAX_SIZE)
            //    return Tuple.createFromArray(items);
            //else
            if (items.Length <= 32)
            {
                return(new PersistentVector(items.Length, 5, PersistentVector.EmptyNode, items));
            }
            return(PersistentVector.create(items));

            //: new LazilyPersistentVector(null, items, null);
        }
Ejemplo n.º 5
0
        static public IPersistentVector createOwning(params object[] items)
        {
            if (items.Length == 0)
            {
                return((IPersistentVector)PersistentVector.EMPTY);
            }
            else if (items.Length <= 32)
            {
                return(new PersistentVector(items.Length, 5, PersistentVector.EmptyNode, items));
            }
            return(PersistentVector.create(items));

            //: new LazilyPersistentVector(null, items, null);
        }