internal static int GetRootLength(ReadOnlySpan <char> path)
        {
            int  length = path.Length;
            int  index  = 0;
            bool flag1  = PathInternal.IsDevice(path);
            bool flag2  = flag1 && PathInternal.IsDeviceUNC(path);

            if (!flag1 | flag2 && length > 0 && PathInternal.IsDirectorySeparator(path[0]))
            {
                if (flag2 || length > 1 && PathInternal.IsDirectorySeparator(path[1]))
                {
                    index = flag2 ? 8 : 2;
                    int num = 2;
                    while (index < length && (!PathInternal.IsDirectorySeparator(path[index]) || --num > 0))
                    {
                        ++index;
                    }
                }
                else
                {
                    index = 1;
                }
            }
            else if (flag1)
            {
                index = 4;
                while (index < length && !PathInternal.IsDirectorySeparator(path[index]))
                {
                    ++index;
                }
                if (index < length && index > 4 && PathInternal.IsDirectorySeparator(path[index]))
                {
                    ++index;
                }
            }
            else if (length >= 2 && path[1] == ':' && PathInternal.IsValidDriveChar(path[0]))
            {
                index = 2;
                if (length > 2 && PathInternal.IsDirectorySeparator(path[2]))
                {
                    ++index;
                }
            }
            return(index);
        }