Example #1
0
        public static bool TryParse(ReadOnlySpan <byte> buffer, out BInt?value, out int consumed)
        {
            consumed = 0;
            value    = null;

            if (buffer.IsEmpty)
            {
                return(false);
            }

            if (buffer[0] != 'i')
            {
                return(false);
            }

            consumed++;

            var countB = new List <byte>();

            for (; consumed < buffer.Length && char.IsDigit((char)buffer[consumed]); consumed++)
            {
                countB.Add(buffer[consumed]);
            }

            if (countB.Count == 0)
            {
                return(false);
            }

            if (buffer.Length == consumed || buffer[consumed] != 'e')
            {
                return(false);
            }

            consumed++;

            value = new BInt(long.Parse(Encoding.UTF8.GetString(countB.ToArray())));
            return(true);
        }
Example #2
0
 public TorrentFile(BInt length, BStr[] path)
 {
     Length = length;
     Path   = path;
 }