code_ownership 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Cargo.lock +8 -14
- data/ext/cargo-vendor/magnus-0.8.2/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/magnus-0.8.2/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/CHANGELOG.md +66 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Cargo.lock +243 -9
- data/ext/cargo-vendor/magnus-0.8.2/Cargo.toml +277 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Cargo.toml.orig +11 -6
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/README.md +75 -23
- data/ext/cargo-vendor/magnus-0.8.2/build.rs +15 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/test/temperature_test.rb +4 -4
- data/ext/cargo-vendor/magnus-0.8.2/examples/inheritance.rs +66 -0
- data/ext/cargo-vendor/magnus-0.8.2/examples/mut_point.rs +116 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/api.rs +4 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/class.rs +9 -7
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/encoding.rs +5 -5
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/error.rs +12 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/fiber.rs +5 -5
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/gc.rs +3 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/integer.rs +134 -0
- data/ext/cargo-vendor/magnus-0.8.2/src/io.rs +230 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/lib.rs +53 -54
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/macros.rs +2 -2
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/method.rs +14 -100
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/module.rs +1 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/mutex.rs +1 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_array.rs +2 -2
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_bignum.rs +100 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_hash.rs +63 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_string.rs +31 -231
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_typed_data.rs +6 -9
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/rb_sys.rs +4 -4
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/scan_args.rs +3 -3
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/thread.rs +16 -10
- data/ext/cargo-vendor/magnus-0.8.2/src/time.rs +462 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/try_convert.rs +64 -2
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/typed_data.rs +113 -11
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/value/flonum.rs +1 -1
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/value.rs +83 -6
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/test +1 -1
- data/ext/cargo-vendor/magnus-0.8.2/tests/hash.rs +44 -0
- data/ext/cargo-vendor/magnus-0.8.2/tests/io.rs +62 -0
- data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/return_iter.rs +1 -1
- data/ext/cargo-vendor/magnus-0.8.2/tests/string.rs +23 -0
- data/ext/cargo-vendor/magnus-0.8.2/tests/time.rs +71 -0
- data/ext/cargo-vendor/magnus-macros-0.8.0/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/magnus-macros-0.8.0/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/magnus-macros-0.8.0/Cargo.lock +47 -0
- data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/Cargo.toml +10 -1
- data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/Cargo.toml.orig +1 -1
- data/ext/cargo-vendor/magnus-macros-0.8.0/src/lib.rs +545 -0
- data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/typed_data.rs +3 -3
- data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/util.rs +1 -1
- data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo-checksum.json +1 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo_vcs_info.json +6 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.lock +77 -75
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.toml +3 -3
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.toml.orig +7 -4
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/README.md +8 -5
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/array_deserializer.rs +12 -8
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/array_enumerator.rs +12 -7
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/deserializer.rs +21 -18
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/de/enum_deserializer.rs +35 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/hash_deserializer.rs +18 -11
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/mod.rs +76 -76
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/variant_deserializer.rs +10 -9
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/error.rs +10 -4
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/lib.rs +6 -5
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/enums.rs +11 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/map_serializer.rs +11 -12
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/mod.rs +53 -50
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/seq_serializer.rs +11 -10
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/serializer.rs +50 -34
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/struct_serializer.rs +40 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/struct_variant_serializer.rs +45 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/tuple_variant_serializer.rs +38 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_arrays.rs +3 -3
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_booleans.rs +15 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_enums.rs +39 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_floats.rs +12 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_integers.rs +18 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_maps.rs +3 -2
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_options.rs +15 -0
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_results.rs +17 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_strings.rs +7 -7
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_structs.rs +9 -9
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_tuples.rs +27 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_vecs.rs +3 -3
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_arrays.rs +3 -3
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_booleans.rs +15 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_enums.rs +9 -7
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_floats.rs +2 -2
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_integers.rs +4 -4
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_maps.rs +3 -2
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_options.rs +3 -3
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_results.rs +5 -4
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_strings.rs +30 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_structs.rs +15 -7
- data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_tuples.rs +35 -0
- data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_vecs.rs +3 -3
- data/ext/code_ownership/Cargo.toml +2 -2
- data/ext/code_ownership/extconf.rb +2 -1
- data/ext/code_ownership/src/lib.rs +16 -16
- data/lib/code_ownership/cli.rb +1 -0
- data/lib/code_ownership/private/file_path_finder.rb +3 -7
- data/lib/code_ownership/private/file_path_team_cache.rb +5 -9
- data/lib/code_ownership/private/for_file_output_builder.rb +0 -1
- data/lib/code_ownership/private/team_finder.rb +8 -14
- data/lib/code_ownership/version.rb +2 -2
- data/lib/code_ownership.rb +12 -17
- metadata +182 -186
- data/ext/cargo-vendor/magnus-0.7.1/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/magnus-0.7.1/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/magnus-0.7.1/Cargo.toml +0 -95
- data/ext/cargo-vendor/magnus-0.7.1/build.rs +0 -5
- data/ext/cargo-vendor/magnus-0.7.1/examples/mut_point.rs +0 -60
- data/ext/cargo-vendor/magnus-0.7.1/src/time.rs +0 -190
- data/ext/cargo-vendor/magnus-0.7.1/tests/hash.rs +0 -25
- data/ext/cargo-vendor/magnus-0.7.1/tests/string.rs +0 -13
- data/ext/cargo-vendor/magnus-macros-0.6.0/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/magnus-macros-0.6.0/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/magnus-macros-0.6.0/src/lib.rs +0 -401
- data/ext/cargo-vendor/rb-sys-env-0.1.2/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/rb-sys-env-0.1.2/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/rb-sys-env-0.1.2/Cargo.toml +0 -25
- data/ext/cargo-vendor/rb-sys-env-0.1.2/Cargo.toml.orig +0 -14
- data/ext/cargo-vendor/rb-sys-env-0.1.2/LICENSE-APACHE +0 -190
- data/ext/cargo-vendor/rb-sys-env-0.1.2/LICENSE-MIT +0 -21
- data/ext/cargo-vendor/rb-sys-env-0.1.2/readme.md +0 -119
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/defines.rs +0 -37
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/lib.rs +0 -180
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/rb_env.rs +0 -110
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/ruby_version.rs +0 -163
- data/ext/cargo-vendor/rb-sys-env-0.1.2/src/utils.rs +0 -6
- data/ext/cargo-vendor/serde_magnus-0.9.0/.cargo-checksum.json +0 -1
- data/ext/cargo-vendor/serde_magnus-0.9.0/.cargo_vcs_info.json +0 -6
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/de/enum_deserializer.rs +0 -30
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/enums.rs +0 -11
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/struct_serializer.rs +0 -36
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/struct_variant_serializer.rs +0 -37
- data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/tuple_variant_serializer.rs +0 -33
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_booleans.rs +0 -18
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_enums.rs +0 -39
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_floats.rs +0 -12
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_integers.rs +0 -18
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_options.rs +0 -15
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_results.rs +0 -17
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_tuples.rs +0 -31
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_booleans.rs +0 -15
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_strings.rs +0 -30
- data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_tuples.rs +0 -27
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/.cargo/config.toml +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Gemfile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/LICENSE +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/Rakefile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/lib/temperature.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/Rakefile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/lib/ahriman/error.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/lib/ahriman.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/test/error_test.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/Rakefile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/lib/ahriman.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/test/error_test.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/fibonacci.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/hello_world.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/point.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/Rakefile +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/lib/rust_blank.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/test/bench.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/test/blank_test.rb +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/block.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/embed.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/enumerator.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/exception.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/float.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/into_value.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/numeric.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/object.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/process.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_complex.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_file.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_float.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_match.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_object.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_rational.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_regexp.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_struct.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/range.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/symbol.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/allocate_before_init.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/array_slice.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/block_call.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/bytes.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/call_proc.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/classname.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/clone.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/codepoints.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/debug_exception.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/encoding_capable.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/enumerator.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/enumeratorize.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/float_convert_from_value.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/float_convert_to_value.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/fmt.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/freeze.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/integer_convert_to_value.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/integer_traits.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/ivar.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/lazy_id.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/make_proc.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/proc_new.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/range.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/return_custom_error.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/scan_args.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/str.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/struct.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/symbol.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/try_convert_array.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/tuple_to_array.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_obj.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_subclass.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_subclass_from_ruby.rs +0 -0
- /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/yield.rs +0 -0
- /data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/LICENSE +0 -0
- /data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/init.rs +0 -0
- /data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/LICENSE +0 -0
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
use super::Serializer;
|
|
2
2
|
use crate::error::Error;
|
|
3
|
-
use magnus::{
|
|
4
|
-
value::{qnil, ReprValue},
|
|
5
|
-
IntoValue, RHash, Value,
|
|
6
|
-
};
|
|
3
|
+
use magnus::{value::ReprValue, IntoValue, RHash, Ruby, Value};
|
|
7
4
|
use serde::{ser::SerializeMap, Serialize};
|
|
8
5
|
|
|
9
|
-
pub struct MapSerializer {
|
|
6
|
+
pub struct MapSerializer<'r> {
|
|
7
|
+
ruby: &'r Ruby,
|
|
10
8
|
hash: RHash,
|
|
11
9
|
key: Value,
|
|
12
10
|
}
|
|
13
11
|
|
|
14
|
-
impl MapSerializer {
|
|
15
|
-
pub fn new(hash: RHash) -> MapSerializer {
|
|
12
|
+
impl<'r> MapSerializer<'r> {
|
|
13
|
+
pub fn new(ruby: &'r Ruby, hash: RHash) -> MapSerializer<'r> {
|
|
16
14
|
MapSerializer {
|
|
15
|
+
ruby,
|
|
17
16
|
hash,
|
|
18
|
-
key: qnil().as_value(),
|
|
17
|
+
key: ruby.qnil().as_value(),
|
|
19
18
|
}
|
|
20
19
|
}
|
|
21
20
|
}
|
|
22
21
|
|
|
23
|
-
impl SerializeMap for MapSerializer {
|
|
22
|
+
impl<'r> SerializeMap for MapSerializer<'r> {
|
|
24
23
|
type Ok = Value;
|
|
25
24
|
type Error = Error;
|
|
26
25
|
|
|
@@ -28,7 +27,7 @@ impl SerializeMap for MapSerializer {
|
|
|
28
27
|
where
|
|
29
28
|
Key: Serialize + ?Sized,
|
|
30
29
|
{
|
|
31
|
-
self.key = key.serialize(Serializer)?;
|
|
30
|
+
self.key = key.serialize(Serializer::new(self.ruby))?;
|
|
32
31
|
Ok(())
|
|
33
32
|
}
|
|
34
33
|
|
|
@@ -37,11 +36,11 @@ impl SerializeMap for MapSerializer {
|
|
|
37
36
|
Value: Serialize + ?Sized,
|
|
38
37
|
{
|
|
39
38
|
self.hash
|
|
40
|
-
.aset(self.key, value.serialize(Serializer)?)
|
|
39
|
+
.aset(self.key, value.serialize(Serializer::new(self.ruby))?)
|
|
41
40
|
.map_err(Into::into)
|
|
42
41
|
}
|
|
43
42
|
|
|
44
43
|
fn end(self) -> Result<Self::Ok, Self::Error> {
|
|
45
|
-
Ok(self.hash.
|
|
44
|
+
Ok(self.hash.into_value_with(self.ruby))
|
|
46
45
|
}
|
|
47
46
|
}
|
|
@@ -15,7 +15,7 @@ use self::{
|
|
|
15
15
|
tuple_variant_serializer::TupleVariantSerializer,
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
use magnus::{Error, TryConvert};
|
|
18
|
+
use magnus::{Error, Ruby, TryConvert};
|
|
19
19
|
use serde::Serialize;
|
|
20
20
|
|
|
21
21
|
/// Serialize Rust data to a Ruby [`Value`][`magnus::Value`].
|
|
@@ -35,16 +35,16 @@ use serde::Serialize;
|
|
|
35
35
|
/// | `&[u8]` | A `String` with ASCII-8BIT encoding |
|
|
36
36
|
///
|
|
37
37
|
/// ```
|
|
38
|
-
/// # let
|
|
38
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
39
39
|
/// #
|
|
40
40
|
/// use magnus::{eval, Value};
|
|
41
41
|
/// use serde_magnus::serialize;
|
|
42
42
|
///
|
|
43
|
-
/// let output: Value = serialize(&1234)?;
|
|
44
|
-
/// assert!(eval!("output == 1234", output)?);
|
|
43
|
+
/// let output: Value = serialize(&ruby, &1234)?;
|
|
44
|
+
/// assert!(eval!(&ruby, "output == 1234", output)?);
|
|
45
45
|
///
|
|
46
|
-
/// let output: Value = serialize("Hello, world!")?;
|
|
47
|
-
/// assert!(eval!("output == 'Hello, world!'", output)?);
|
|
46
|
+
/// let output: Value = serialize(&ruby, "Hello, world!")?;
|
|
47
|
+
/// assert!(eval!(&ruby, "output == 'Hello, world!'", output)?);
|
|
48
48
|
/// #
|
|
49
49
|
/// # Ok::<(), magnus::Error>(())
|
|
50
50
|
/// ```
|
|
@@ -57,15 +57,15 @@ use serde::Serialize;
|
|
|
57
57
|
/// # use magnus::{eval, Value};
|
|
58
58
|
/// # use serde_magnus::serialize;
|
|
59
59
|
/// #
|
|
60
|
-
/// # let
|
|
60
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
61
61
|
/// #
|
|
62
62
|
/// let input: Option<u64> = None;
|
|
63
|
-
/// let output: Value = serialize(&input)?;
|
|
64
|
-
/// assert!(eval!("output == nil", output)?);
|
|
63
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
64
|
+
/// assert!(eval!(&ruby, "output == nil", output)?);
|
|
65
65
|
///
|
|
66
66
|
/// let input: Option<u64> = Some(1234);
|
|
67
|
-
/// let output: Value = serialize(&input)?;
|
|
68
|
-
/// assert!(eval!("output == 1234", output)?);
|
|
67
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
68
|
+
/// assert!(eval!(&ruby, "output == 1234", output)?);
|
|
69
69
|
/// #
|
|
70
70
|
/// # Ok::<(), magnus::Error>(())
|
|
71
71
|
/// ```
|
|
@@ -78,15 +78,15 @@ use serde::Serialize;
|
|
|
78
78
|
/// # use magnus::{eval, Value};
|
|
79
79
|
/// # use serde_magnus::serialize;
|
|
80
80
|
/// #
|
|
81
|
-
/// # let
|
|
81
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
82
82
|
/// #
|
|
83
83
|
/// let input: Result<u64, &str> = Ok(1234);
|
|
84
|
-
/// let output: Value = serialize(&input)?;
|
|
85
|
-
/// assert!(eval!("output == { 'Ok' => 1234 }", output)?);
|
|
84
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
85
|
+
/// assert!(eval!(&ruby, "output == { 'Ok' => 1234 }", output)?);
|
|
86
86
|
///
|
|
87
87
|
/// let input: Result<u64, &str> = Err("something went wrong");
|
|
88
|
-
/// let output: Value = serialize(&input)?;
|
|
89
|
-
/// assert!(eval!("output == { 'Err' => 'something went wrong' }", output)?);
|
|
88
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
89
|
+
/// assert!(eval!(&ruby, "output == { 'Err' => 'something went wrong' }", output)?);
|
|
90
90
|
/// #
|
|
91
91
|
/// # Ok::<(), magnus::Error>(())
|
|
92
92
|
/// ```
|
|
@@ -99,15 +99,15 @@ use serde::Serialize;
|
|
|
99
99
|
/// # use magnus::{eval, Value};
|
|
100
100
|
/// # use serde_magnus::serialize;
|
|
101
101
|
/// #
|
|
102
|
-
/// # let
|
|
102
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
103
103
|
/// #
|
|
104
104
|
/// use serde::Serialize;
|
|
105
105
|
///
|
|
106
106
|
/// #[derive(Serialize)]
|
|
107
107
|
/// struct Foo;
|
|
108
108
|
///
|
|
109
|
-
/// let output: Value = serialize(&Foo)?;
|
|
110
|
-
/// assert!(eval!("output == nil", output)?);
|
|
109
|
+
/// let output: Value = serialize(&ruby, &Foo)?;
|
|
110
|
+
/// assert!(eval!(&ruby, "output == nil", output)?);
|
|
111
111
|
/// #
|
|
112
112
|
/// # Ok::<(), magnus::Error>(())
|
|
113
113
|
/// ```
|
|
@@ -119,14 +119,14 @@ use serde::Serialize;
|
|
|
119
119
|
/// # use serde::Serialize;
|
|
120
120
|
/// # use serde_magnus::serialize;
|
|
121
121
|
/// #
|
|
122
|
-
/// # let
|
|
122
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
123
123
|
/// #
|
|
124
124
|
/// #[derive(Serialize)]
|
|
125
125
|
/// struct Foo(u16);
|
|
126
126
|
///
|
|
127
127
|
/// let input = Foo(1234);
|
|
128
|
-
/// let output: Value = serialize(&input)?;
|
|
129
|
-
/// assert!(eval!("output == 1234", output)?);
|
|
128
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
129
|
+
/// assert!(eval!(&ruby, "output == 1234", output)?);
|
|
130
130
|
/// #
|
|
131
131
|
/// # Ok::<(), magnus::Error>(())
|
|
132
132
|
/// ```
|
|
@@ -138,14 +138,14 @@ use serde::Serialize;
|
|
|
138
138
|
/// # use serde::Serialize;
|
|
139
139
|
/// # use serde_magnus::serialize;
|
|
140
140
|
/// #
|
|
141
|
-
/// # let
|
|
141
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
142
142
|
/// #
|
|
143
143
|
/// #[derive(Serialize)]
|
|
144
144
|
/// struct Foo<'a>(u16, bool, &'a str);
|
|
145
145
|
///
|
|
146
146
|
/// let input = Foo(1234, false, "Hello, world!");
|
|
147
|
-
/// let output: Value = serialize(&input)?;
|
|
148
|
-
/// assert!(eval!("output == [1234, false, 'Hello, world!']", output)?);
|
|
147
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
148
|
+
/// assert!(eval!(&ruby, "output == [1234, false, 'Hello, world!']", output)?);
|
|
149
149
|
/// #
|
|
150
150
|
/// # Ok::<(), magnus::Error>(())
|
|
151
151
|
/// ```
|
|
@@ -157,7 +157,7 @@ use serde::Serialize;
|
|
|
157
157
|
/// # use serde::Serialize;
|
|
158
158
|
/// # use serde_magnus::serialize;
|
|
159
159
|
/// #
|
|
160
|
-
/// # let
|
|
160
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
161
161
|
/// #
|
|
162
162
|
/// #[derive(Serialize)]
|
|
163
163
|
/// struct Foo<'a> {
|
|
@@ -167,8 +167,9 @@ use serde::Serialize;
|
|
|
167
167
|
/// }
|
|
168
168
|
///
|
|
169
169
|
/// let input = Foo { bar: 1234, baz: false, glorp: "Hello, world!" };
|
|
170
|
-
/// let output: Value = serialize(&input)?;
|
|
170
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
171
171
|
/// assert!(eval!(
|
|
172
|
+
/// &ruby,
|
|
172
173
|
/// r#"
|
|
173
174
|
/// output == {
|
|
174
175
|
/// bar: 1234,
|
|
@@ -207,7 +208,7 @@ use serde::Serialize;
|
|
|
207
208
|
/// # use serde::Serialize;
|
|
208
209
|
/// # use serde_magnus::serialize;
|
|
209
210
|
/// #
|
|
210
|
-
/// # let
|
|
211
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
211
212
|
/// #
|
|
212
213
|
/// # #[derive(Serialize)]
|
|
213
214
|
/// # enum Foo<'a> {
|
|
@@ -221,8 +222,8 @@ use serde::Serialize;
|
|
|
221
222
|
/// # }
|
|
222
223
|
/// # }
|
|
223
224
|
/// #
|
|
224
|
-
/// let output: Value = serialize(&Foo::Bar)?;
|
|
225
|
-
/// assert!(eval!("output == 'Bar'", output)?);
|
|
225
|
+
/// let output: Value = serialize(&ruby, &Foo::Bar)?;
|
|
226
|
+
/// assert!(eval!(&ruby, "output == 'Bar'", output)?);
|
|
226
227
|
/// #
|
|
227
228
|
/// # Ok::<(), magnus::Error>(())
|
|
228
229
|
/// ```
|
|
@@ -237,7 +238,7 @@ use serde::Serialize;
|
|
|
237
238
|
/// # use serde::Serialize;
|
|
238
239
|
/// # use serde_magnus::serialize;
|
|
239
240
|
/// #
|
|
240
|
-
/// # let
|
|
241
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
241
242
|
/// #
|
|
242
243
|
/// # #[derive(Serialize)]
|
|
243
244
|
/// # enum Foo<'a> {
|
|
@@ -252,8 +253,8 @@ use serde::Serialize;
|
|
|
252
253
|
/// # }
|
|
253
254
|
/// #
|
|
254
255
|
/// let input = Foo::Baz(1234);
|
|
255
|
-
/// let output: Value = serialize(&input)?;
|
|
256
|
-
/// assert!(eval!("output == { 'Baz' => 1234 }", output)?);
|
|
256
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
257
|
+
/// assert!(eval!(&ruby, "output == { 'Baz' => 1234 }", output)?);
|
|
257
258
|
/// #
|
|
258
259
|
/// # Ok::<(), magnus::Error>(())
|
|
259
260
|
/// ```
|
|
@@ -265,7 +266,7 @@ use serde::Serialize;
|
|
|
265
266
|
/// # use serde::Serialize;
|
|
266
267
|
/// # use serde_magnus::serialize;
|
|
267
268
|
/// #
|
|
268
|
-
/// # let
|
|
269
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
269
270
|
/// #
|
|
270
271
|
/// # #[derive(Serialize)]
|
|
271
272
|
/// # enum Foo<'a> {
|
|
@@ -280,8 +281,8 @@ use serde::Serialize;
|
|
|
280
281
|
/// # }
|
|
281
282
|
/// #
|
|
282
283
|
/// let input = Foo::Glorp(1234, false, "Hello, world!");
|
|
283
|
-
/// let output: Value = serialize(&input)?;
|
|
284
|
-
/// assert!(eval!("output == { 'Glorp' => [1234, false, 'Hello, world!'] }", output)?);
|
|
284
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
285
|
+
/// assert!(eval!(&ruby, "output == { 'Glorp' => [1234, false, 'Hello, world!'] }", output)?);
|
|
285
286
|
/// #
|
|
286
287
|
/// # Ok::<(), magnus::Error>(())
|
|
287
288
|
/// ```
|
|
@@ -293,7 +294,7 @@ use serde::Serialize;
|
|
|
293
294
|
/// # use serde::Serialize;
|
|
294
295
|
/// # use serde_magnus::serialize;
|
|
295
296
|
/// #
|
|
296
|
-
/// # let
|
|
297
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
297
298
|
/// #
|
|
298
299
|
/// # #[derive(Serialize)]
|
|
299
300
|
/// # enum Foo<'a> {
|
|
@@ -308,8 +309,9 @@ use serde::Serialize;
|
|
|
308
309
|
/// # }
|
|
309
310
|
/// #
|
|
310
311
|
/// let input = Foo::Quux { frob: 1234, wally: false, plugh: "Hello, world!" };
|
|
311
|
-
/// let output: Value = serialize(&input)?;
|
|
312
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
312
313
|
/// assert!(eval!(
|
|
314
|
+
/// &ruby,
|
|
313
315
|
/// r#"
|
|
314
316
|
/// output == {
|
|
315
317
|
/// "Quux" => {
|
|
@@ -334,15 +336,15 @@ use serde::Serialize;
|
|
|
334
336
|
/// # use magnus::{eval, Value};
|
|
335
337
|
/// # use serde_magnus::serialize;
|
|
336
338
|
/// #
|
|
337
|
-
/// # let
|
|
339
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
338
340
|
/// #
|
|
339
341
|
/// let input = (123, false, "Hello, world!");
|
|
340
|
-
/// let output: Value = serialize(&input)?;
|
|
341
|
-
/// assert!(eval!("output == [123, false, 'Hello, world!']", output)?);
|
|
342
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
343
|
+
/// assert!(eval!(&ruby, "output == [123, false, 'Hello, world!']", output)?);
|
|
342
344
|
///
|
|
343
345
|
/// let input = [123, 456, 789];
|
|
344
|
-
/// let output: Value = serialize(&input)?;
|
|
345
|
-
/// assert!(eval!("output == [123, 456, 789]", output)?);
|
|
346
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
347
|
+
/// assert!(eval!(&ruby, "output == [123, 456, 789]", output)?);
|
|
346
348
|
/// #
|
|
347
349
|
/// # Ok::<(), magnus::Error>(())
|
|
348
350
|
/// ```
|
|
@@ -355,11 +357,11 @@ use serde::Serialize;
|
|
|
355
357
|
/// # use magnus::{eval, Value};
|
|
356
358
|
/// # use serde_magnus::serialize;
|
|
357
359
|
/// #
|
|
358
|
-
/// # let
|
|
360
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
359
361
|
/// #
|
|
360
362
|
/// let input = vec![123, 456, 789];
|
|
361
|
-
/// let output: Value = serialize(&input)?;
|
|
362
|
-
/// assert!(eval!("output == [123, 456, 789]", output)?);
|
|
363
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
364
|
+
/// assert!(eval!(&ruby, "output == [123, 456, 789]", output)?);
|
|
363
365
|
/// #
|
|
364
366
|
/// # Ok::<(), magnus::Error>(())
|
|
365
367
|
/// ```
|
|
@@ -370,7 +372,7 @@ use serde::Serialize;
|
|
|
370
372
|
/// # use magnus::{eval, Value};
|
|
371
373
|
/// # use serde_magnus::serialize;
|
|
372
374
|
/// #
|
|
373
|
-
/// # let
|
|
375
|
+
/// # let ruby = unsafe { magnus::embed::init() };
|
|
374
376
|
/// #
|
|
375
377
|
/// use std::collections::HashMap;
|
|
376
378
|
///
|
|
@@ -380,8 +382,9 @@ use serde::Serialize;
|
|
|
380
382
|
/// input.insert("high", "low");
|
|
381
383
|
/// input.insert("goodbye", "hello");
|
|
382
384
|
///
|
|
383
|
-
/// let output: Value = serialize(&input)?;
|
|
385
|
+
/// let output: Value = serialize(&ruby, &input)?;
|
|
384
386
|
/// assert!(eval!(
|
|
387
|
+
/// &ruby,
|
|
385
388
|
/// r#"
|
|
386
389
|
/// output == {
|
|
387
390
|
/// "yes" => "no",
|
|
@@ -395,10 +398,10 @@ use serde::Serialize;
|
|
|
395
398
|
/// #
|
|
396
399
|
/// # Ok::<(), magnus::Error>(())
|
|
397
400
|
/// ```
|
|
398
|
-
pub fn serialize<Input, Output>(input: &Input) -> Result<Output, Error>
|
|
401
|
+
pub fn serialize<Input, Output>(ruby: &Ruby, input: &Input) -> Result<Output, Error>
|
|
399
402
|
where
|
|
400
403
|
Input: Serialize + ?Sized,
|
|
401
404
|
Output: TryConvert,
|
|
402
405
|
{
|
|
403
|
-
TryConvert::try_convert(input.serialize(Serializer)?)
|
|
406
|
+
TryConvert::try_convert(input.serialize(Serializer::new(ruby))?)
|
|
404
407
|
}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
use super::Serializer;
|
|
2
2
|
use crate::error::Error;
|
|
3
|
-
use magnus::{IntoValue, RArray, Value};
|
|
3
|
+
use magnus::{IntoValue, RArray, Ruby, Value};
|
|
4
4
|
use serde::{
|
|
5
5
|
ser::{SerializeSeq, SerializeTuple, SerializeTupleStruct},
|
|
6
6
|
Serialize,
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
pub struct SeqSerializer {
|
|
9
|
+
pub struct SeqSerializer<'r> {
|
|
10
|
+
ruby: &'r Ruby,
|
|
10
11
|
array: RArray,
|
|
11
12
|
}
|
|
12
13
|
|
|
13
|
-
impl SeqSerializer {
|
|
14
|
-
pub fn new(array: RArray) -> SeqSerializer {
|
|
15
|
-
SeqSerializer { array }
|
|
14
|
+
impl<'r> SeqSerializer<'r> {
|
|
15
|
+
pub fn new(ruby: &'r Ruby, array: RArray) -> SeqSerializer<'r> {
|
|
16
|
+
SeqSerializer { ruby, array }
|
|
16
17
|
}
|
|
17
18
|
}
|
|
18
19
|
|
|
19
|
-
impl SerializeSeq for SeqSerializer {
|
|
20
|
+
impl<'r> SerializeSeq for SeqSerializer<'r> {
|
|
20
21
|
type Ok = Value;
|
|
21
22
|
type Error = Error;
|
|
22
23
|
|
|
@@ -25,16 +26,16 @@ impl SerializeSeq for SeqSerializer {
|
|
|
25
26
|
Element: Serialize + ?Sized,
|
|
26
27
|
{
|
|
27
28
|
self.array
|
|
28
|
-
.push(element.serialize(Serializer)?)
|
|
29
|
+
.push(element.serialize(Serializer::new(self.ruby))?)
|
|
29
30
|
.map_err(Into::into)
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
fn end(self) -> Result<Self::Ok, self::Error> {
|
|
33
|
-
Ok(self.array.
|
|
34
|
+
Ok(self.array.into_value_with(self.ruby))
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
impl SerializeTuple for SeqSerializer {
|
|
38
|
+
impl<'r> SerializeTuple for SeqSerializer<'r> {
|
|
38
39
|
type Ok = Value;
|
|
39
40
|
type Error = Error;
|
|
40
41
|
|
|
@@ -50,7 +51,7 @@ impl SerializeTuple for SeqSerializer {
|
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
impl SerializeTupleStruct for SeqSerializer {
|
|
54
|
+
impl<'r> SerializeTupleStruct for SeqSerializer<'r> {
|
|
54
55
|
type Ok = Value;
|
|
55
56
|
type Error = Error;
|
|
56
57
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
use magnus::{IntoValue,
|
|
1
|
+
use magnus::{IntoValue, Ruby, Value};
|
|
2
2
|
use serde::Serialize;
|
|
3
3
|
|
|
4
4
|
use super::{
|
|
@@ -7,78 +7,86 @@ use super::{
|
|
|
7
7
|
};
|
|
8
8
|
use crate::error::Error;
|
|
9
9
|
|
|
10
|
-
pub struct Serializer
|
|
10
|
+
pub struct Serializer<'r> {
|
|
11
|
+
ruby: &'r Ruby,
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
impl<'r> Serializer<'r> {
|
|
15
|
+
pub fn new(ruby: &'r Ruby) -> Self {
|
|
16
|
+
Self { ruby }
|
|
17
|
+
}
|
|
18
|
+
}
|
|
11
19
|
|
|
12
|
-
impl serde::Serializer for Serializer {
|
|
20
|
+
impl<'r> serde::Serializer for Serializer<'r> {
|
|
13
21
|
type Ok = Value;
|
|
14
22
|
type Error = Error;
|
|
15
23
|
|
|
16
|
-
type SerializeSeq = SeqSerializer
|
|
17
|
-
type SerializeTuple = SeqSerializer
|
|
18
|
-
type SerializeTupleStruct = SeqSerializer
|
|
19
|
-
type SerializeTupleVariant = TupleVariantSerializer
|
|
20
|
-
type SerializeMap = MapSerializer
|
|
21
|
-
type SerializeStruct = StructSerializer
|
|
22
|
-
type SerializeStructVariant = StructVariantSerializer
|
|
24
|
+
type SerializeSeq = SeqSerializer<'r>;
|
|
25
|
+
type SerializeTuple = SeqSerializer<'r>;
|
|
26
|
+
type SerializeTupleStruct = SeqSerializer<'r>;
|
|
27
|
+
type SerializeTupleVariant = TupleVariantSerializer<'r>;
|
|
28
|
+
type SerializeMap = MapSerializer<'r>;
|
|
29
|
+
type SerializeStruct = StructSerializer<'r>;
|
|
30
|
+
type SerializeStructVariant = StructVariantSerializer<'r>;
|
|
23
31
|
|
|
24
32
|
fn serialize_bool(self, value: bool) -> Result<Self::Ok, Self::Error> {
|
|
25
|
-
Ok(value.
|
|
33
|
+
Ok(value.into_value_with(self.ruby))
|
|
26
34
|
}
|
|
27
35
|
|
|
28
36
|
fn serialize_i8(self, value: i8) -> Result<Self::Ok, Self::Error> {
|
|
29
|
-
Ok(value.
|
|
37
|
+
Ok(value.into_value_with(self.ruby))
|
|
30
38
|
}
|
|
31
39
|
|
|
32
40
|
fn serialize_i16(self, value: i16) -> Result<Self::Ok, Self::Error> {
|
|
33
|
-
Ok(value.
|
|
41
|
+
Ok(value.into_value_with(self.ruby))
|
|
34
42
|
}
|
|
35
43
|
|
|
36
44
|
fn serialize_i32(self, value: i32) -> Result<Self::Ok, Self::Error> {
|
|
37
|
-
Ok(value.
|
|
45
|
+
Ok(value.into_value_with(self.ruby))
|
|
38
46
|
}
|
|
39
47
|
|
|
40
48
|
fn serialize_i64(self, value: i64) -> Result<Self::Ok, Self::Error> {
|
|
41
|
-
Ok(value.
|
|
49
|
+
Ok(value.into_value_with(self.ruby))
|
|
42
50
|
}
|
|
43
51
|
|
|
44
52
|
fn serialize_u8(self, value: u8) -> Result<Self::Ok, Self::Error> {
|
|
45
|
-
Ok(value.
|
|
53
|
+
Ok(value.into_value_with(self.ruby))
|
|
46
54
|
}
|
|
47
55
|
|
|
48
56
|
fn serialize_u16(self, value: u16) -> Result<Self::Ok, Self::Error> {
|
|
49
|
-
Ok(value.
|
|
57
|
+
Ok(value.into_value_with(self.ruby))
|
|
50
58
|
}
|
|
51
59
|
|
|
52
60
|
fn serialize_u32(self, value: u32) -> Result<Self::Ok, Self::Error> {
|
|
53
|
-
Ok(value.
|
|
61
|
+
Ok(value.into_value_with(self.ruby))
|
|
54
62
|
}
|
|
55
63
|
|
|
56
64
|
fn serialize_u64(self, value: u64) -> Result<Self::Ok, Self::Error> {
|
|
57
|
-
Ok(value.
|
|
65
|
+
Ok(value.into_value_with(self.ruby))
|
|
58
66
|
}
|
|
59
67
|
|
|
60
68
|
fn serialize_f32(self, value: f32) -> Result<Self::Ok, Self::Error> {
|
|
61
|
-
Ok(value.
|
|
69
|
+
Ok(value.into_value_with(self.ruby))
|
|
62
70
|
}
|
|
63
71
|
|
|
64
72
|
fn serialize_f64(self, value: f64) -> Result<Self::Ok, Self::Error> {
|
|
65
|
-
Ok(value.
|
|
73
|
+
Ok(value.into_value_with(self.ruby))
|
|
66
74
|
}
|
|
67
75
|
|
|
68
76
|
fn serialize_char(self, value: char) -> Result<Self::Ok, Self::Error> {
|
|
69
|
-
Ok(value.
|
|
77
|
+
Ok(value.into_value_with(self.ruby))
|
|
70
78
|
}
|
|
71
79
|
|
|
72
80
|
fn serialize_str(self, value: &str) -> Result<Self::Ok, Self::Error> {
|
|
73
|
-
Ok(value.
|
|
81
|
+
Ok(value.into_value_with(self.ruby))
|
|
74
82
|
}
|
|
75
83
|
|
|
76
84
|
fn serialize_bytes(self, value: &[u8]) -> Result<Self::Ok, Self::Error> {
|
|
77
|
-
Ok(
|
|
85
|
+
Ok(self.ruby.str_from_slice(value).into_value_with(self.ruby))
|
|
78
86
|
}
|
|
79
87
|
|
|
80
88
|
fn serialize_none(self) -> Result<Self::Ok, Self::Error> {
|
|
81
|
-
Ok(().
|
|
89
|
+
Ok(().into_value_with(self.ruby))
|
|
82
90
|
}
|
|
83
91
|
|
|
84
92
|
fn serialize_some<Value>(self, value: &Value) -> Result<Self::Ok, Self::Error>
|
|
@@ -89,11 +97,11 @@ impl serde::Serializer for Serializer {
|
|
|
89
97
|
}
|
|
90
98
|
|
|
91
99
|
fn serialize_unit(self) -> Result<Self::Ok, Self::Error> {
|
|
92
|
-
Ok(().
|
|
100
|
+
Ok(().into_value_with(self.ruby))
|
|
93
101
|
}
|
|
94
102
|
|
|
95
103
|
fn serialize_unit_struct(self, _name: &'static str) -> Result<Self::Ok, Self::Error> {
|
|
96
|
-
Ok(().
|
|
104
|
+
Ok(().into_value_with(self.ruby))
|
|
97
105
|
}
|
|
98
106
|
|
|
99
107
|
fn serialize_unit_variant(
|
|
@@ -102,7 +110,7 @@ impl serde::Serializer for Serializer {
|
|
|
102
110
|
_index: u32,
|
|
103
111
|
variant: &'static str,
|
|
104
112
|
) -> Result<Self::Ok, Self::Error> {
|
|
105
|
-
Ok(variant.
|
|
113
|
+
Ok(variant.into_value_with(self.ruby))
|
|
106
114
|
}
|
|
107
115
|
|
|
108
116
|
fn serialize_newtype_struct<Value>(
|
|
@@ -126,11 +134,14 @@ impl serde::Serializer for Serializer {
|
|
|
126
134
|
where
|
|
127
135
|
Value: Serialize + ?Sized,
|
|
128
136
|
{
|
|
129
|
-
nest(variant, value.serialize(self)?)
|
|
137
|
+
nest(self.ruby, variant, value.serialize(self)?)
|
|
130
138
|
}
|
|
131
139
|
|
|
132
140
|
fn serialize_seq(self, len: Option<usize>) -> Result<Self::SerializeSeq, Self::Error> {
|
|
133
|
-
Ok(SeqSerializer::new(
|
|
141
|
+
Ok(SeqSerializer::new(
|
|
142
|
+
self.ruby,
|
|
143
|
+
self.ruby.ary_new_capa(len.unwrap_or(0)),
|
|
144
|
+
))
|
|
134
145
|
}
|
|
135
146
|
|
|
136
147
|
fn serialize_tuple(self, len: usize) -> Result<Self::SerializeTuple, Self::Error> {
|
|
@@ -153,13 +164,14 @@ impl serde::Serializer for Serializer {
|
|
|
153
164
|
len: usize,
|
|
154
165
|
) -> Result<Self::SerializeTupleVariant, Self::Error> {
|
|
155
166
|
Ok(TupleVariantSerializer::new(
|
|
167
|
+
self.ruby,
|
|
156
168
|
variant,
|
|
157
|
-
|
|
169
|
+
self.ruby.ary_new_capa(len),
|
|
158
170
|
))
|
|
159
171
|
}
|
|
160
172
|
|
|
161
173
|
fn serialize_map(self, _len: Option<usize>) -> Result<Self::SerializeMap, Self::Error> {
|
|
162
|
-
Ok(MapSerializer::new(
|
|
174
|
+
Ok(MapSerializer::new(self.ruby, self.ruby.hash_new()))
|
|
163
175
|
}
|
|
164
176
|
|
|
165
177
|
fn serialize_struct(
|
|
@@ -167,7 +179,7 @@ impl serde::Serializer for Serializer {
|
|
|
167
179
|
_name: &'static str,
|
|
168
180
|
_len: usize,
|
|
169
181
|
) -> Result<Self::SerializeStruct, Self::Error> {
|
|
170
|
-
Ok(StructSerializer::new(
|
|
182
|
+
Ok(StructSerializer::new(self.ruby, self.ruby.hash_new()))
|
|
171
183
|
}
|
|
172
184
|
|
|
173
185
|
fn serialize_struct_variant(
|
|
@@ -177,6 +189,10 @@ impl serde::Serializer for Serializer {
|
|
|
177
189
|
variant: &'static str,
|
|
178
190
|
_len: usize,
|
|
179
191
|
) -> Result<Self::SerializeStructVariant, Self::Error> {
|
|
180
|
-
Ok(StructVariantSerializer::new(
|
|
192
|
+
Ok(StructVariantSerializer::new(
|
|
193
|
+
self.ruby,
|
|
194
|
+
variant,
|
|
195
|
+
self.ruby.hash_new(),
|
|
196
|
+
))
|
|
181
197
|
}
|
|
182
198
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
use super::Serializer;
|
|
2
|
+
use crate::error::Error;
|
|
3
|
+
use magnus::{IntoValue, RHash, Ruby, Value};
|
|
4
|
+
use serde::{ser::SerializeStruct, Serialize};
|
|
5
|
+
|
|
6
|
+
pub struct StructSerializer<'r> {
|
|
7
|
+
ruby: &'r Ruby,
|
|
8
|
+
hash: RHash,
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
impl<'r> StructSerializer<'r> {
|
|
12
|
+
pub fn new(ruby: &'r Ruby, hash: RHash) -> StructSerializer<'r> {
|
|
13
|
+
StructSerializer { ruby, hash }
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
impl<'r> SerializeStruct for StructSerializer<'r> {
|
|
18
|
+
type Ok = Value;
|
|
19
|
+
type Error = Error;
|
|
20
|
+
|
|
21
|
+
fn serialize_field<Value>(
|
|
22
|
+
&mut self,
|
|
23
|
+
name: &'static str,
|
|
24
|
+
value: &Value,
|
|
25
|
+
) -> Result<(), Self::Error>
|
|
26
|
+
where
|
|
27
|
+
Value: Serialize + ?Sized,
|
|
28
|
+
{
|
|
29
|
+
self.hash
|
|
30
|
+
.aset(
|
|
31
|
+
self.ruby.to_symbol(name),
|
|
32
|
+
value.serialize(Serializer::new(self.ruby))?,
|
|
33
|
+
)
|
|
34
|
+
.map_err(Into::into)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
fn end(self) -> Result<Self::Ok, Self::Error> {
|
|
38
|
+
Ok(self.hash.into_value_with(self.ruby))
|
|
39
|
+
}
|
|
40
|
+
}
|