ParseRPCVersion parses a version string in the format "major.minor" into a RPCVersion.
(str string)
| 41 | // ParseRPCVersion parses a version string in the format "major.minor" into a |
| 42 | // RPCVersion. |
| 43 | func ParseRPCVersion(str string) (RPCVersion, error) { |
| 44 | split := strings.Split(str, ".") |
| 45 | if len(split) != 2 { |
| 46 | return RPCVersion{}, xerrors.Errorf("invalid version string: %s", str) |
| 47 | } |
| 48 | major, err := strconv.ParseUint(split[0], 10, 64) |
| 49 | if err != nil { |
| 50 | return RPCVersion{}, xerrors.Errorf("invalid version string: %s", str) |
| 51 | } |
| 52 | if major == 0 { |
| 53 | return RPCVersion{}, xerrors.Errorf("invalid version string: %s", str) |
| 54 | } |
| 55 | minor, err := strconv.ParseUint(split[1], 10, 64) |
| 56 | if err != nil { |
| 57 | return RPCVersion{}, xerrors.Errorf("invalid version string: %s", str) |
| 58 | } |
| 59 | return RPCVersion{Major: major, Minor: minor}, nil |
| 60 | } |
| 61 | |
| 62 | func (v RPCVersion) String() string { |
| 63 | return fmt.Sprintf("%d.%d", v.Major, v.Minor) |