protected byte[] parseString(String str)
 {
     byte[][] bytess = new byte[2][];
     bytess[1] = EzyStrings.getUtfBytes(str);
     bytess[0] = parseStringSize(bytess[1].Length);
     return(EzyBytes.merge(bytess));
 }
 protected byte[] parseBin(byte[] bin)
 {
     byte[][] bytess = new byte[2][];
     bytess[0] = parseBinSize(bin.Length);
     bytess[1] = bin;
     return(EzyBytes.merge(bytess));
 }
        protected byte[] parseArray(EzyArray array)
        {
            int index = 1;
            int size  = array.size();

            byte[][] bytess = new byte[size + 1][];
            bytess[0] = parseArraySize(size);
            for (int i = 0; i < size; i++)
            {
                bytess[index++] = serialize(array.get <Object>(i));
            }
            return(EzyBytes.merge(bytess));
        }
        protected byte[] parseArray <T>(T[] array)
        {
            int index = 1;
            int size  = array.Length;

            byte[][] bytess = new byte[size + 1][];
            bytess[0] = parseArraySize(size);
            for (int i = 0; i < size; i++)
            {
                bytess[index++] = serialize(array[i]);
            }
            return(EzyBytes.merge(bytess));
        }
        protected byte[] parseObject(EzyObject obj)
        {
            int index = 1;
            int size  = obj.size();

            byte[][] bytess = new byte[size * 2 + 1][];
            bytess[0] = parseMapSize(size);
            foreach (Object key in obj.keys())
            {
                bytess[index++] = serialize(key);
                bytess[index++] = serialize(obj.get <Object>(key));
            }
            return(EzyBytes.merge(bytess));
        }