type Tree … // FormatTree formats a tree description for inclusion in a note. // // The encoded form is three lines, each ending in a newline (U+000A): // // go.sum database tree // N // Hash // // where N is in decimal and Hash is in base64. // // A future backwards-compatible encoding may add additional lines, // which the parser can ignore. // A future backwards-incompatible encoding would use a different // first line (for example, "go.sum database tree v2"). func FormatTree(tree Tree) []byte { … } var errMalformedTree … var treePrefix … // ParseTree parses a formatted tree root description. func ParseTree(text []byte) (tree Tree, err error) { … } var errMalformedRecord … // FormatRecord formats a record for serving to a client // in a lookup response or data tile. // // The encoded form is the record ID as a single number, // then the text of the record, and then a terminating blank line. // Record text must be valid UTF-8 and must not contain any ASCII control // characters (those below U+0020) other than newline (U+000A). // It must end in a terminating newline and not contain any blank lines. func FormatRecord(id int64, text []byte) (msg []byte, err error) { … } // isValidRecordText reports whether text is syntactically valid record text. func isValidRecordText(text []byte) bool { … } // ParseRecord parses a record description at the start of text, // stopping immediately after the terminating blank line. // It returns the record id, the record text, and the remainder of text. func ParseRecord(msg []byte) (id int64, text, rest []byte, err error) { … }