Baku.LibqiDotNet.QiSignatureValidityChecker.GetContainerTokenEndIndex C# (CSharp) Method

GetContainerTokenEndIndex() private static method

private static GetContainerTokenEndIndex ( string src, string begins, string ends, bool &success ) : int
src string
begins string
ends string
success bool
return int
        private static int GetContainerTokenEndIndex(string src, string begins, string ends, out bool success)
        {
            if (!src.StartsWith(begins))
            {
                success = false;
                return -1;
            }

            int x = 1;
            int index = -1;
            for (int i = 1; i < src.Length; i++)
            {
                x += src[i] == ends[0] ? -1 :
                     src[i] == begins[0] ? 1 :
                     0;
                if (x == 0)
                {
                    index = i;
                    break;
                }
            }

            //index == -1で終わるのはシグネチャを書き間違えてるケース等
            success = (index != -1);
            return index;

        }