// Code generated by id-generate.go DO NOT EDIT. package {{.PkgName}} import "go.mongodb.org/mongo-driver/bson" import "go.mongodb.org/mongo-driver/bson/bsontype" import "go.mongodb.org/mongo-driver/bson/primitive" import "gogs.mikescher.com/BlackForestBytes/goext/exerr" const ChecksumIDGenerator = "{{.Checksum}}" // GoExtVersion: {{.GoextVersion}} {{range .IDs}} // ================================ {{.Name}} ({{.FileRelative}}) ================================ func (i {{.Name}}) MarshalBSONValue() (bsontype.Type, []byte, error) { if objId, err := primitive.ObjectIDFromHex(string(i)); err == nil { return bson.MarshalValue(objId) } else { return 0, nil, exerr.New(exerr.TypeMarshalEntityID, "Failed to marshal {{.Name}}("+i.String()+") to ObjectId").Str("value", string(i)).Type("type", i).Build() } } func (i *{{.Name}}) String() string { if i == nil { return "" } return string(*i) } func (i {{.Name}}) ObjID() (primitive.ObjectID, error) { return primitive.ObjectIDFromHex(string(i)) } func (i {{.Name}}) Valid() bool { _, err := primitive.ObjectIDFromHex(string(i)) return err == nil } {{if ne $.AnyDef nil}} func (i {{.Name}}) AsAny() {{$.AnyDef.Name}} { return {{$.AnyDef.Name}}(i) } {{end}} func New{{.Name}}() {{.Name}} { return {{.Name}}(primitive.NewObjectID().Hex()) } {{end}}