package main import ( "blocky/internal/block" "blocky/internal/block/int64_component" int64_component_validators "blocky/internal/block/int64_component/validators" "blocky/internal/block/text_component" text_component_validators "blocky/internal/block/text_component/validators" "blocky/internal/block/validation" "fmt" ) func main() { b := &block.Block{} textComponent := text_component.NewTextComponent( "title", "Title", []validation.ComponentOption{ validation.Required(), }, []text_component.TextComponentOption{ text_component_validators.Regex("^\\d+$"), }, ) b.Components = append(b.Components, textComponent) fmt.Println(textComponent.Name(), textComponent.Type()) int64Component := int64_component.NewInt64Component( "year", "Year", []validation.ComponentOption{}, []int64_component.Int64ComponentOption{ int64_component_validators.Max(4), }, ) b.Components = append(b.Components, int64Component) data := []byte(`{"title": "252", "year": 2 }`) // data := []byte(`{"year": 2}`) instance := &block.BlockInstance{} err := instance.FromJSON(b, data) if err != nil { fmt.Println("Error decoding object", err) return } fmt.Println(instance) fmt.Println(instance.Components[0]) fmt.Println(instance.Components[1]) }