From 9c17b97cd0f83be3fff9fa4e87fd1d29052ea616 Mon Sep 17 00:00:00 2001 From: Paul Duncan Date: Fri, 4 Feb 2022 00:35:31 -0500 Subject: rename to github.com/pablotron/cvez, remove internal libs --- cpe/part.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 cpe/part.go (limited to 'cpe/part.go') diff --git a/cpe/part.go b/cpe/part.go new file mode 100644 index 0000000..ef91f7c --- /dev/null +++ b/cpe/part.go @@ -0,0 +1,41 @@ +package cpe + +//go:generate stringer -linecomment -type=Part + +import ( + "fmt" +) + +// CPE part +type Part byte + +const ( + ApplicationPart Part = 'a' // a + OperatingSystemPart Part = 'o' // o + HardwarePart Part = 'h' // h + AnyPart Part = '*' // * + NAPart Part = '-' // - +) + +// create new part from token +func newPart(t token) (Part, error) { + switch t.Type { + case anyToken: + return AnyPart, nil + case naToken: + return NAPart, nil + case valToken: + switch t.Val { + case "a": + return ApplicationPart, nil + case "o": + return OperatingSystemPart, nil + case "h": + return HardwarePart, nil + default: + return 0, fmt.Errorf("unknown part: \"%s\"", t.Val) + } + default: + return 0, fmt.Errorf("unknown token type: 0x%02x", byte(t.Type)) + } +} -- cgit v1.2.3