encoding/openapi: change naming in line with standard

Issue #56

Change-Id: I382b1a6d35d31ec42a9bdfe8b85037b78b518166
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/2441
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/encoding/openapi/orderedmap.go b/encoding/openapi/orderedmap.go
index 74e789f..8d419a8 100644
--- a/encoding/openapi/orderedmap.go
+++ b/encoding/openapi/orderedmap.go
@@ -16,56 +16,64 @@
 
 import "encoding/json"
 
-type orderedMap []kvPair
+// An OrderedMap is a set of key-value pairs that preserves the order in which
+// items were added. It marshals to JSON as an object.
+type OrderedMap []KeyValue
 
-type kvPair struct {
-	key   string
-	value interface{}
+// KeyValue associates a value with a key.
+type KeyValue struct {
+	Key   string
+	Value interface{}
 }
 
-func (m *orderedMap) Prepend(key string, value interface{}) {
-	*m = append([]kvPair{{key, value}}, (*m)...)
+func (m *OrderedMap) prepend(key string, value interface{}) {
+	*m = append([]KeyValue{{key, value}}, (*m)...)
 }
 
-func (m *orderedMap) Set(key string, value interface{}) {
+// set sets a key value pair. If a pair with the same key already existed, it
+// will be replaced with the new value. Otherwise, the new value is added to
+// the end.
+func (m *OrderedMap) set(key string, value interface{}) {
 	for i, v := range *m {
-		if v.key == key {
-			(*m)[i].value = value
+		if v.Key == key {
+			(*m)[i].Value = value
 			return
 		}
 	}
-	*m = append(*m, kvPair{key, value})
+	*m = append(*m, KeyValue{key, value})
 }
 
-func (m *orderedMap) Exists(key string) bool {
-	for _, v := range *m {
-		if v.key == key {
+// exists reports whether a key-value pair exists for the given key.
+func (m OrderedMap) exists(key string) bool {
+	for _, v := range m {
+		if v.Key == key {
 			return true
 		}
 	}
 	return false
 }
 
-func (m *orderedMap) MarshalJSON() (b []byte, err error) {
+// MarshalJSON implements Marshal
+func (m OrderedMap) MarshalJSON() (b []byte, err error) {
 	b = append(b, '{')
-	for i, v := range *m {
+	for i, v := range m {
 		if i > 0 {
 			b = append(b, ",\n"...)
 		}
-		key, err := json.Marshal(v.key)
+		key, err := json.Marshal(v.Key)
 		if je, ok := err.(*json.MarshalerError); ok {
 			return nil, je.Err
 		}
 		b = append(b, key...)
 		b = append(b, ": "...)
 
-		value, err := json.Marshal(v.value)
+		value, jerr := json.Marshal(v.Value)
 		if je, ok := err.(*json.MarshalerError); ok {
-			// return nil, je.Err
+			err = jerr
 			value, _ = json.Marshal(je.Err.Error())
 		}
 		b = append(b, value...)
 	}
 	b = append(b, '}')
-	return b, nil
+	return b, err
 }