lexicons: add sh.tangled.string #410

merged
opened by oppi.li targeting master from push-potvrpwlpwsl
Changed files
+298
api
cmd
lexicons
string
+232
api/tangled/cbor_gen.go
···
return nil
+
func (t *String) MarshalCBOR(w io.Writer) error {
+
if t == nil {
+
_, err := w.Write(cbg.CborNull)
+
return err
+
}
+
+
cw := cbg.NewCborWriter(w)
+
+
if _, err := cw.Write([]byte{165}); err != nil {
+
return err
+
}
+
+
// t.LexiconTypeID (string) (string)
+
if len("$type") > 1000000 {
+
return xerrors.Errorf("Value in field \"$type\" was too long")
+
}
+
+
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("$type"))); err != nil {
+
return err
+
}
+
if _, err := cw.WriteString(string("$type")); err != nil {
+
return err
+
}
+
+
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.string"))); err != nil {
+
return err
+
}
+
if _, err := cw.WriteString(string("sh.tangled.string")); err != nil {
+
return err
+
}
+
+
// t.Contents (string) (string)
+
if len("contents") > 1000000 {
+
return xerrors.Errorf("Value in field \"contents\" was too long")
+
}
+
+
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("contents"))); err != nil {
+
return err
+
}
+
if _, err := cw.WriteString(string("contents")); err != nil {
+
return err
+
}
+
+
if len(t.Contents) > 1000000 {
+
return xerrors.Errorf("Value in field t.Contents was too long")
+
}
+
+
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Contents))); err != nil {
+
return err
+
}
+
if _, err := cw.WriteString(string(t.Contents)); err != nil {
+
return err
+
}
+
+
// t.Filename (string) (string)
+
if len("filename") > 1000000 {
+
return xerrors.Errorf("Value in field \"filename\" was too long")
+
}
+
+
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("filename"))); err != nil {
+
return err
+
}
+
if _, err := cw.WriteString(string("filename")); err != nil {
+
return err
+
}
+
+
if len(t.Filename) > 1000000 {
+
return xerrors.Errorf("Value in field t.Filename was too long")
+
}
+
+
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Filename))); err != nil {
+
return err
+
}
+
if _, err := cw.WriteString(string(t.Filename)); err != nil {
+
return err
+
}
+
+
// t.CreatedAt (string) (string)
+
if len("createdAt") > 1000000 {
+
return xerrors.Errorf("Value in field \"createdAt\" was too long")
+
}
+
+
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("createdAt"))); err != nil {
+
return err
+
}
+
if _, err := cw.WriteString(string("createdAt")); err != nil {
+
return err
+
}
+
+
if len(t.CreatedAt) > 1000000 {
+
return xerrors.Errorf("Value in field t.CreatedAt was too long")
+
}
+
+
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.CreatedAt))); err != nil {
+
return err
+
}
+
if _, err := cw.WriteString(string(t.CreatedAt)); err != nil {
+
return err
+
}
+
+
// t.Description (string) (string)
+
if len("description") > 1000000 {
+
return xerrors.Errorf("Value in field \"description\" was too long")
+
}
+
+
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("description"))); err != nil {
+
return err
+
}
+
if _, err := cw.WriteString(string("description")); err != nil {
+
return err
+
}
+
+
if len(t.Description) > 1000000 {
+
return xerrors.Errorf("Value in field t.Description was too long")
+
}
+
+
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Description))); err != nil {
+
return err
+
}
+
if _, err := cw.WriteString(string(t.Description)); err != nil {
+
return err
+
}
+
return nil
+
}
+
+
func (t *String) UnmarshalCBOR(r io.Reader) (err error) {
+
*t = String{}
+
+
cr := cbg.NewCborReader(r)
+
+
maj, extra, err := cr.ReadHeader()
+
if err != nil {
+
return err
+
}
+
defer func() {
+
if err == io.EOF {
+
err = io.ErrUnexpectedEOF
+
}
+
}()
+
+
if maj != cbg.MajMap {
+
return fmt.Errorf("cbor input should be of type map")
+
}
+
+
if extra > cbg.MaxLength {
+
return fmt.Errorf("String: map struct too large (%d)", extra)
+
}
+
+
n := extra
+
+
nameBuf := make([]byte, 11)
+
for i := uint64(0); i < n; i++ {
+
nameLen, ok, err := cbg.ReadFullStringIntoBuf(cr, nameBuf, 1000000)
+
if err != nil {
+
return err
+
}
+
+
if !ok {
+
// Field doesn't exist on this type, so ignore it
+
if err := cbg.ScanForLinks(cr, func(cid.Cid) {}); err != nil {
+
return err
+
}
+
continue
+
}
+
+
switch string(nameBuf[:nameLen]) {
+
// t.LexiconTypeID (string) (string)
+
case "$type":
+
+
{
+
sval, err := cbg.ReadStringWithMax(cr, 1000000)
+
if err != nil {
+
return err
+
}
+
+
t.LexiconTypeID = string(sval)
+
}
+
// t.Contents (string) (string)
+
case "contents":
+
+
{
+
sval, err := cbg.ReadStringWithMax(cr, 1000000)
+
if err != nil {
+
return err
+
}
+
+
t.Contents = string(sval)
+
}
+
// t.Filename (string) (string)
+
case "filename":
+
+
{
+
sval, err := cbg.ReadStringWithMax(cr, 1000000)
+
if err != nil {
+
return err
+
}
+
+
t.Filename = string(sval)
+
}
+
// t.CreatedAt (string) (string)
+
case "createdAt":
+
+
{
+
sval, err := cbg.ReadStringWithMax(cr, 1000000)
+
if err != nil {
+
return err
+
}
+
+
t.CreatedAt = string(sval)
+
}
+
// t.Description (string) (string)
+
case "description":
+
+
{
+
sval, err := cbg.ReadStringWithMax(cr, 1000000)
+
if err != nil {
+
return err
+
}
+
+
t.Description = string(sval)
+
}
+
+
default:
+
// Field doesn't exist on this type, so ignore it
+
if err := cbg.ScanForLinks(r, func(cid.Cid) {}); err != nil {
+
return err
+
}
+
}
+
}
+
+
return nil
+
}
+25
api/tangled/tangledstring.go
···
+
// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT.
+
+
package tangled
+
+
// schema: sh.tangled.string
+
+
import (
+
"github.com/bluesky-social/indigo/lex/util"
+
)
+
+
const (
+
StringNSID = "sh.tangled.string"
+
)
+
+
func init() {
+
util.RegisterType("sh.tangled.string", &String{})
+
} //
+
// RECORDTYPE: String
+
type String struct {
+
LexiconTypeID string `json:"$type,const=sh.tangled.string" cborgen:"$type,const=sh.tangled.string"`
+
Contents string `json:"contents" cborgen:"contents"`
+
CreatedAt string `json:"createdAt" cborgen:"createdAt"`
+
Description string `json:"description" cborgen:"description"`
+
Filename string `json:"filename" cborgen:"filename"`
+
}
+1
cmd/gen.go
···
tangled.RepoPullStatus{},
tangled.Spindle{},
tangled.SpindleMember{},
+
tangled.String{},
); err != nil {
panic(err)
}
+40
lexicons/string/string.json
···
+
{
+
"lexicon": 1,
+
"id": "sh.tangled.string",
+
"needsCbor": true,
+
"needsType": true,
+
"defs": {
+
"main": {
+
"type": "record",
+
"key": "tid",
+
"record": {
+
"type": "object",
+
"required": [
+
"filename",
+
"description",
+
"createdAt",
+
"contents"
+
],
+
"properties": {
+
"filename": {
+
"type": "string",
+
"maxGraphemes": 140,
+
"minGraphemes": 1
+
},
+
"description": {
+
"type": "string",
+
"maxGraphemes": 280
+
},
+
"createdAt": {
+
"type": "string",
+
"format": "datetime"
+
},
+
"contents": {
+
"type": "string",
+
"minGraphemes": 1
+
}
+
}
+
}
+
}
+
}
+
}