github.com/storacha/go-ucanto@v0.7.2/ucan/datamodel/header/header.go (about) 1 package header 2 3 import ( 4 _ "embed" 5 "fmt" 6 "sync" 7 8 "github.com/ipld/go-ipld-prime" 9 "github.com/ipld/go-ipld-prime/schema" 10 ) 11 12 //go:embed header.ipldsch 13 var headersch []byte 14 15 var ( 16 once sync.Once 17 ts *schema.TypeSystem 18 err error 19 ) 20 21 func mustLoadSchema() *schema.TypeSystem { 22 once.Do(func() { 23 ts, err = ipld.LoadSchemaBytes(headersch) 24 }) 25 if err != nil { 26 panic(fmt.Errorf("failed to load IPLD schema: %w", err)) 27 } 28 return ts 29 } 30 31 func Type() schema.Type { 32 return mustLoadSchema().TypeByName("Header") 33 } 34 35 type HeaderModel struct { 36 Alg string 37 Ucv string 38 Typ string 39 }