├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug-report.md │ └── config.yml ├── SUPPORT.md └── workflows │ ├── ci.yml │ ├── repo-sync-preview.yml │ └── rubocop.yml ├── .gitignore ├── .rspec ├── .rubocop.yml ├── .yardopts ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Gemfile ├── Gemfile.devtools ├── LICENSE ├── README.md ├── Rakefile ├── benchmarks ├── basic.rb ├── constrained.rb ├── profile_instantiation.rb └── setup.rb ├── bin ├── .gitkeep ├── console └── setup ├── docsite └── source │ ├── index.html.md │ ├── nested-structs.html.md │ └── recipes.html.md ├── dry-struct.gemspec ├── lib ├── dry-struct.rb └── dry │ ├── struct.rb │ └── struct │ ├── class_interface.rb │ ├── compiler.rb │ ├── constructor.rb │ ├── errors.rb │ ├── extensions.rb │ ├── extensions │ ├── pretty_print.rb │ └── super_diff.rb │ ├── hashify.rb │ ├── printer.rb │ ├── struct_builder.rb │ ├── sum.rb │ ├── value.rb │ └── version.rb ├── log └── .gitkeep ├── repo-sync.yml └── spec ├── extensions ├── pretty_print_spec.rb └── super_diff_spec.rb ├── integration ├── array_spec.rb ├── attribute_dsl │ ├── abstract_struct_spec.rb │ ├── definition_spec.rb │ ├── nested_array_spec.rb │ └── nested_struct_spec.rb ├── attributes_from_spec.rb ├── compile_spec.rb ├── constructor_spec.rb ├── dry_spec.rb ├── pattern_matching_spec.rb ├── struct_spec.rb ├── sum_spec.rb └── value_spec.rb ├── shared ├── struct.rb └── user_type.rb ├── spec_helper.rb ├── support ├── coverage.rb ├── rspec.rb └── warnings.rb └── unit └── struct_spec.rb /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: hanami 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/.github/ISSUE_TEMPLATE/bug-report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/.github/ISSUE_TEMPLATE/config.yml -------------------------------------------------------------------------------- /.github/SUPPORT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/.github/SUPPORT.md -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/repo-sync-preview.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/.github/workflows/repo-sync-preview.yml -------------------------------------------------------------------------------- /.github/workflows/rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/.github/workflows/rubocop.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/.gitignore -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/.rspec -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/.rubocop.yml -------------------------------------------------------------------------------- /.yardopts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/.yardopts -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/Gemfile -------------------------------------------------------------------------------- /Gemfile.devtools: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/Gemfile.devtools -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/README.md -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/Rakefile -------------------------------------------------------------------------------- /benchmarks/basic.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/benchmarks/basic.rb -------------------------------------------------------------------------------- /benchmarks/constrained.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/benchmarks/constrained.rb -------------------------------------------------------------------------------- /benchmarks/profile_instantiation.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/benchmarks/profile_instantiation.rb -------------------------------------------------------------------------------- /benchmarks/setup.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/benchmarks/setup.rb -------------------------------------------------------------------------------- /bin/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bin/console: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/bin/console -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/bin/setup -------------------------------------------------------------------------------- /docsite/source/index.html.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/docsite/source/index.html.md -------------------------------------------------------------------------------- /docsite/source/nested-structs.html.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/docsite/source/nested-structs.html.md -------------------------------------------------------------------------------- /docsite/source/recipes.html.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/docsite/source/recipes.html.md -------------------------------------------------------------------------------- /dry-struct.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/dry-struct.gemspec -------------------------------------------------------------------------------- /lib/dry-struct.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require "dry/struct" 4 | -------------------------------------------------------------------------------- /lib/dry/struct.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct.rb -------------------------------------------------------------------------------- /lib/dry/struct/class_interface.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct/class_interface.rb -------------------------------------------------------------------------------- /lib/dry/struct/compiler.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct/compiler.rb -------------------------------------------------------------------------------- /lib/dry/struct/constructor.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct/constructor.rb -------------------------------------------------------------------------------- /lib/dry/struct/errors.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct/errors.rb -------------------------------------------------------------------------------- /lib/dry/struct/extensions.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct/extensions.rb -------------------------------------------------------------------------------- /lib/dry/struct/extensions/pretty_print.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct/extensions/pretty_print.rb -------------------------------------------------------------------------------- /lib/dry/struct/extensions/super_diff.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct/extensions/super_diff.rb -------------------------------------------------------------------------------- /lib/dry/struct/hashify.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct/hashify.rb -------------------------------------------------------------------------------- /lib/dry/struct/printer.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct/printer.rb -------------------------------------------------------------------------------- /lib/dry/struct/struct_builder.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct/struct_builder.rb -------------------------------------------------------------------------------- /lib/dry/struct/sum.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct/sum.rb -------------------------------------------------------------------------------- /lib/dry/struct/value.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct/value.rb -------------------------------------------------------------------------------- /lib/dry/struct/version.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/lib/dry/struct/version.rb -------------------------------------------------------------------------------- /log/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /repo-sync.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/repo-sync.yml -------------------------------------------------------------------------------- /spec/extensions/pretty_print_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/extensions/pretty_print_spec.rb -------------------------------------------------------------------------------- /spec/extensions/super_diff_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/extensions/super_diff_spec.rb -------------------------------------------------------------------------------- /spec/integration/array_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/integration/array_spec.rb -------------------------------------------------------------------------------- /spec/integration/attribute_dsl/abstract_struct_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/integration/attribute_dsl/abstract_struct_spec.rb -------------------------------------------------------------------------------- /spec/integration/attribute_dsl/definition_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/integration/attribute_dsl/definition_spec.rb -------------------------------------------------------------------------------- /spec/integration/attribute_dsl/nested_array_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/integration/attribute_dsl/nested_array_spec.rb -------------------------------------------------------------------------------- /spec/integration/attribute_dsl/nested_struct_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/integration/attribute_dsl/nested_struct_spec.rb -------------------------------------------------------------------------------- /spec/integration/attributes_from_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/integration/attributes_from_spec.rb -------------------------------------------------------------------------------- /spec/integration/compile_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/integration/compile_spec.rb -------------------------------------------------------------------------------- /spec/integration/constructor_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/integration/constructor_spec.rb -------------------------------------------------------------------------------- /spec/integration/dry_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/integration/dry_spec.rb -------------------------------------------------------------------------------- /spec/integration/pattern_matching_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/integration/pattern_matching_spec.rb -------------------------------------------------------------------------------- /spec/integration/struct_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/integration/struct_spec.rb -------------------------------------------------------------------------------- /spec/integration/sum_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/integration/sum_spec.rb -------------------------------------------------------------------------------- /spec/integration/value_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/integration/value_spec.rb -------------------------------------------------------------------------------- /spec/shared/struct.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/shared/struct.rb -------------------------------------------------------------------------------- /spec/shared/user_type.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/shared/user_type.rb -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/spec_helper.rb -------------------------------------------------------------------------------- /spec/support/coverage.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/support/coverage.rb -------------------------------------------------------------------------------- /spec/support/rspec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/support/rspec.rb -------------------------------------------------------------------------------- /spec/support/warnings.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/support/warnings.rb -------------------------------------------------------------------------------- /spec/unit/struct_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dry-rb/dry-struct/HEAD/spec/unit/struct_spec.rb --------------------------------------------------------------------------------