func parseVersion(str string) (baseVersion, uint32, bool) {
	switch str {
	case "9P2000.L":
		return version9P2000L, 0, true
	case "9P2000.u":
		return version9P2000U, 0, true
	case "9P2000":
		return version9P2000, 0, true
	default:
		substr := strings.Split(str, ".")
		if len(substr) != 4 {
			return "", 0, false
		}
		if substr[0] != "9P2000" || substr[1] != "L" || substr[2] != "Google" || len(substr[3]) == 0 {
			return "", 0, false
		}
		version, err := strconv.ParseUint(substr[3], 10, 32)
		if err != nil {
			return "", 0, false
		}
		return version9P2000L, uint32(version), true
	}
}
parseVersion parses a Tversion version string into a numeric version number
if the version string is supported by p9.  Otherwise returns (0, false).

From Tversion(9P): "Version strings are defined such that, if the client string
contains one or more period characters, the initial substring up to but not
including any single period in the version string defines a version of the protocol."

p9 intentionally diverges from this and always requires that the version string
start with 9P2000.L to express that it is always compatible with 9P2000.L.  The
only supported versions extensions are of the format 9p2000.L.Google.X where X
is an ever increasing version counter.

Version 9P2000.L.Google.0 implies 9P2000.L.

New versions must always be a strict superset of 9P2000.L. A version increase must
define a predicate representing the feature extension introduced by that version. The
predicate must be commented and should take the format:

// VersionSupportsX returns true if version v supports X and must be checked when ...
func VersionSupportsX(v int32) bool {
...
)
package p9
import (
	"fmt"
	"strconv"
	"strings"
)
const (
	highestSupportedVersion uint32 = 7
	lowestSupportedVersion uint32 = 0
)
type baseVersion string
const (
	undetermined   baseVersion = ""
	version9P2000  baseVersion = "9P2000"
	version9P2000U baseVersion = "9P2000.u"
	version9P2000L baseVersion = "9P2000.L"
)
func HighestVersionString() string {
	return versionString(version9P2000L, highestSupportedVersion)
}