├── .gitattributes ├── .github └── workflows │ └── qa.yml ├── .gitignore ├── .golangci.toml ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── bench ├── DataWithGen_schema_test.go ├── bench_test.go └── testdata.json ├── cmd └── schemagen │ ├── README.md │ ├── lock.go │ ├── main.go │ ├── path.go │ └── validate.go ├── constraint └── constraint.go ├── encoding └── json │ ├── json.go │ └── json_test.go ├── examples ├── codegen │ ├── User_schema.go │ ├── invalid_data.json │ ├── main.go │ └── valid_data.json ├── parse-grpc │ ├── main.go │ └── pb │ │ ├── example.pb.go │ │ ├── example.proto │ │ └── gen.go ├── parse │ └── main.go └── tour │ └── main.go ├── go.mod ├── go.sum ├── internal ├── iso │ ├── countries.csv │ ├── countries.go │ ├── currencies.csv │ ├── currencies.go │ ├── gen.go │ ├── gen.py │ ├── languages.csv │ └── languages.go ├── reflectwalk │ ├── walk.go │ └── walk_test.go ├── testutil │ └── util.go ├── typeconv │ ├── typeconv.go │ └── typeconv_test.go └── uuid │ └── uuid.go ├── justfile ├── optional ├── binary.go ├── custom.go ├── gob.go ├── json.go ├── optional.go ├── optional_example_test.go ├── optional_test.go ├── sql.go └── text.go ├── parse ├── UserWithGen_schema_test.go ├── error.go ├── options.go ├── parse.go └── parse_test.go ├── required ├── binary.go ├── custom.go ├── gob.go ├── json.go ├── required.go ├── required_example_test.go ├── required_test.go ├── sql.go └── text.go ├── schema.go ├── validate ├── charset │ ├── charset.go │ └── charset_test.go ├── error.go ├── impl.go ├── validate.go ├── validators.go └── validators_test.go ├── validators.md ├── validators.py └── validators.toml /.gitattributes: -------------------------------------------------------------------------------- 1 | *.go text eol=lf -------------------------------------------------------------------------------- /.github/workflows/qa.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/.github/workflows/qa.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | coverage.html 2 | -------------------------------------------------------------------------------- /.golangci.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/.golangci.toml -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/README.md -------------------------------------------------------------------------------- /bench/DataWithGen_schema_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/bench/DataWithGen_schema_test.go -------------------------------------------------------------------------------- /bench/bench_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/bench/bench_test.go -------------------------------------------------------------------------------- /bench/testdata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/bench/testdata.json -------------------------------------------------------------------------------- /cmd/schemagen/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/cmd/schemagen/README.md -------------------------------------------------------------------------------- /cmd/schemagen/lock.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/cmd/schemagen/lock.go -------------------------------------------------------------------------------- /cmd/schemagen/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/cmd/schemagen/main.go -------------------------------------------------------------------------------- /cmd/schemagen/path.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/cmd/schemagen/path.go -------------------------------------------------------------------------------- /cmd/schemagen/validate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/cmd/schemagen/validate.go -------------------------------------------------------------------------------- /constraint/constraint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/constraint/constraint.go -------------------------------------------------------------------------------- /encoding/json/json.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/encoding/json/json.go -------------------------------------------------------------------------------- /encoding/json/json_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/encoding/json/json_test.go -------------------------------------------------------------------------------- /examples/codegen/User_schema.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/examples/codegen/User_schema.go -------------------------------------------------------------------------------- /examples/codegen/invalid_data.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/examples/codegen/invalid_data.json -------------------------------------------------------------------------------- /examples/codegen/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/examples/codegen/main.go -------------------------------------------------------------------------------- /examples/codegen/valid_data.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/examples/codegen/valid_data.json -------------------------------------------------------------------------------- /examples/parse-grpc/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/examples/parse-grpc/main.go -------------------------------------------------------------------------------- /examples/parse-grpc/pb/example.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/examples/parse-grpc/pb/example.pb.go -------------------------------------------------------------------------------- /examples/parse-grpc/pb/example.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/examples/parse-grpc/pb/example.proto -------------------------------------------------------------------------------- /examples/parse-grpc/pb/gen.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/examples/parse-grpc/pb/gen.go -------------------------------------------------------------------------------- /examples/parse/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/examples/parse/main.go -------------------------------------------------------------------------------- /examples/tour/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/examples/tour/main.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/go.sum -------------------------------------------------------------------------------- /internal/iso/countries.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/internal/iso/countries.csv -------------------------------------------------------------------------------- /internal/iso/countries.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/internal/iso/countries.go -------------------------------------------------------------------------------- /internal/iso/currencies.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/internal/iso/currencies.csv -------------------------------------------------------------------------------- /internal/iso/currencies.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/internal/iso/currencies.go -------------------------------------------------------------------------------- /internal/iso/gen.go: -------------------------------------------------------------------------------- 1 | package iso 2 | 3 | //go:generate python3 gen.py 4 | -------------------------------------------------------------------------------- /internal/iso/gen.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/internal/iso/gen.py -------------------------------------------------------------------------------- /internal/iso/languages.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/internal/iso/languages.csv -------------------------------------------------------------------------------- /internal/iso/languages.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/internal/iso/languages.go -------------------------------------------------------------------------------- /internal/reflectwalk/walk.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/internal/reflectwalk/walk.go -------------------------------------------------------------------------------- /internal/reflectwalk/walk_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/internal/reflectwalk/walk_test.go -------------------------------------------------------------------------------- /internal/testutil/util.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/internal/testutil/util.go -------------------------------------------------------------------------------- /internal/typeconv/typeconv.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/internal/typeconv/typeconv.go -------------------------------------------------------------------------------- /internal/typeconv/typeconv_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/internal/typeconv/typeconv_test.go -------------------------------------------------------------------------------- /internal/uuid/uuid.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/internal/uuid/uuid.go -------------------------------------------------------------------------------- /justfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/justfile -------------------------------------------------------------------------------- /optional/binary.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/optional/binary.go -------------------------------------------------------------------------------- /optional/custom.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/optional/custom.go -------------------------------------------------------------------------------- /optional/gob.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/optional/gob.go -------------------------------------------------------------------------------- /optional/json.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/optional/json.go -------------------------------------------------------------------------------- /optional/optional.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/optional/optional.go -------------------------------------------------------------------------------- /optional/optional_example_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/optional/optional_example_test.go -------------------------------------------------------------------------------- /optional/optional_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/optional/optional_test.go -------------------------------------------------------------------------------- /optional/sql.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/optional/sql.go -------------------------------------------------------------------------------- /optional/text.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/optional/text.go -------------------------------------------------------------------------------- /parse/UserWithGen_schema_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/parse/UserWithGen_schema_test.go -------------------------------------------------------------------------------- /parse/error.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/parse/error.go -------------------------------------------------------------------------------- /parse/options.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/parse/options.go -------------------------------------------------------------------------------- /parse/parse.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/parse/parse.go -------------------------------------------------------------------------------- /parse/parse_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/parse/parse_test.go -------------------------------------------------------------------------------- /required/binary.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/required/binary.go -------------------------------------------------------------------------------- /required/custom.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/required/custom.go -------------------------------------------------------------------------------- /required/gob.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/required/gob.go -------------------------------------------------------------------------------- /required/json.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/required/json.go -------------------------------------------------------------------------------- /required/required.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/required/required.go -------------------------------------------------------------------------------- /required/required_example_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/required/required_example_test.go -------------------------------------------------------------------------------- /required/required_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/required/required_test.go -------------------------------------------------------------------------------- /required/sql.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/required/sql.go -------------------------------------------------------------------------------- /required/text.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/required/text.go -------------------------------------------------------------------------------- /schema.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/schema.go -------------------------------------------------------------------------------- /validate/charset/charset.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/validate/charset/charset.go -------------------------------------------------------------------------------- /validate/charset/charset_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/validate/charset/charset_test.go -------------------------------------------------------------------------------- /validate/error.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/validate/error.go -------------------------------------------------------------------------------- /validate/impl.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/validate/impl.go -------------------------------------------------------------------------------- /validate/validate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/validate/validate.go -------------------------------------------------------------------------------- /validate/validators.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/validate/validators.go -------------------------------------------------------------------------------- /validate/validators_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/validate/validators_test.go -------------------------------------------------------------------------------- /validators.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/validators.md -------------------------------------------------------------------------------- /validators.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/validators.py -------------------------------------------------------------------------------- /validators.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metafates/schema/HEAD/validators.toml --------------------------------------------------------------------------------