Shaman.Runtime.MultiValueStringBuilder.CreateValueStringFromUtf8 C# (CSharp) Method

CreateValueStringFromUtf8() public method

public CreateValueStringFromUtf8 ( byte arr, int start, int length ) : ValueString
arr byte
start int
length int
return ValueString
        public unsafe ValueString CreateValueStringFromUtf8(byte[] arr, int start, int length)
        {
            if (start + length > arr.Length) throw new ArgumentException();
            EnsureSpace(length * 2);
            fixed (char* ptr = str)
            {
                var ptrx = ptr + used;
                var offset = used;
                foreach (var codePoint in new Utf8String.CodePointEnumerable(arr, start, length))
                {
                    int charsEncoded;
                    if (!Utf16LittleEndianEncoder.TryEncodeCodePoint(codePoint, ptrx, out charsEncoded))
                    {
                        // TODO: Change Exception type
                        throw new Exception("invalid character");
                    }
                    ptrx += charsEncoded;
                }
                var strlen = (int)(ptrx - ptr - used);
                used += strlen;
                return new ValueString(str, offset, strlen);

            }
        }