public static bool TryParse(string name, out PackageVersion result)
        {
            result = new PackageVersion();
            var segPrev = name.Split("-");

            switch (segPrev.Length)
            {
            case 2:
                if (!segPrev[1].StartsWith("preview"))
                {
                    return(false);
                }
                // is a preview package
                var prevSeg = segPrev[1].Split(".");
                if (prevSeg.Length == 2)
                {
                    if (!int.TryParse(prevSeg[1], out result.Preview))
                    {
                        return(false);
                    }
                }
                else
                {
                    result.Preview = 0;
                }
                goto case 1;     // fall through

            case 1:
                return(VersionMMR.TryParse(segPrev[0], out result.MMR));

            default:
                return(false);
            }
        }
 public static bool TryParse(string name, out UnityVersion result)
 {
     result = new UnityVersion();
     return(VersionMMR.TryParse(name, out result.MMR));
 }