Ejemplo n.º 1
0
        public static DecodeResult Decode(string encoded)
        {
            int result = 0;
            int shift  = 0;

            int charactersRead = 0;

            foreach (var character in encoded)
            {
                charactersRead += 1;

                var digit        = Base64Converter.Decode(character);
                var continuation = (digit & VLQ_CONTINUATION_BIT) != 0;
                digit  &= VLQ_BASE_MASK;
                result += (digit << shift);
                shift  += VLQ_BASE_SHIFT;
                if (!continuation)
                {
                    break;
                }
            }
            return(new DecodeResult(fromVLQ(result), charactersRead));
        }