func goPackageName(pkg *Package) string {
	if opt, ok := pkg.Options["go_package"]; ok {
		if i := strings.IndexByte(opt, ';'); i >= 0 {
			return opt[i+1:]
		} else if i := strings.LastIndexByte(opt, '/'); i >= 0 {
			return opt[i+1:]
		} else {
			return opt
		}
	}
	if pkg.Name != "" {
		return strings.Replace(pkg.Name, ".", "_", -1)
	}
	if len(pkg.Files) == 1 {
		for s := range pkg.Files {
			return strings.TrimSuffix(s, ".proto")
		}
	}
	return ""
}
func goPackageName(pkg *Package) string {
	if opt, ok := pkg.Options["go_package"]; ok {
		if i := strings.IndexByte(opt, ';'); i >= 0 {
			return opt[i+1:]
		} else if i := strings.LastIndexByte(opt, '/'); i >= 0 {
			return opt[i+1:]
		} else {
			return opt
		}
	}
	if pkg.Name != "" {
		return strings.Replace(pkg.Name, ".", "_", -1)
	}
	if len(pkg.Files) == 1 {
		for s := range pkg.Files {
			return strings.TrimSuffix(s, ".proto")
		}
	}
	return ""
}
func goPackageName ( pkg * Package ) string { if opt , ok := pkg . Options [ " " ] ; ok { if i := strings . IndexByte ( opt , ';' ) ; i >= 0 { return opt [ i + 1 : ] } else if i := strings . LastIndexByte ( opt , '/' ) ; i >= 0 { return opt [ i + 1 : ] } else { return opt } } if pkg . Name != " " { return strings . Replace ( pkg . Name , " " , " " , - 1 ) } if len ( pkg . Files ) == 1 { for s := range pkg . Files { return strings . TrimSuffix ( s , " " ) } } return " " }
// goPackageName guesses the identifier in package declarations at the top of
// the .pb.go files that will be generated for this package. "" is returned
// if the package name cannot be determined.
//
// TODO(jayconrod): remove all Go-specific functionality. This is here
// temporarily for compatibility.
goPackageName guesses the identifier in package declarations at the top of the . pb . go files that will be generated for this package . is returned if the package name cannot be determined . TODO ( jayconrod ) : remove all Go - specific functionality . This is here temporarily for compatibility .