[INFO] fetching crate nsys-math-utils 0.9.0...
[INFO] checking nsys-math-utils-0.9.0 against e3607d549209cc9fdfe7e907123b4185210e2c2b for pr-158915
[INFO] extracting crate nsys-math-utils 0.9.0 into /workspace/builds/worker-2-tc2/source
[INFO] removed /workspace/builds/worker-2-tc2/source/rust-toolchain
[INFO] started tweaking crates.io crate nsys-math-utils 0.9.0
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate nsys-math-utils 0.9.0
[INFO] tweaked toml for crates.io crate nsys-math-utils 0.9.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate nsys-math-utils 0.9.0 on toolchain e3607d549209cc9fdfe7e907123b4185210e2c2b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate nsys-math-utils 0.9.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.allow-attributes` is deprecated in favor of `lints.clippy.allow_attributes` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.assertions-on-result-states` is deprecated in favor of `lints.clippy.assertions_on_result_states` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.bool-to-int-with-if` is deprecated in favor of `lints.clippy.bool_to_int_with_if` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.branches-sharing-code` is deprecated in favor of `lints.clippy.branches_sharing_code` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.cast-possible-truncation` is deprecated in favor of `lints.clippy.cast_possible_truncation` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.cast-possible-wrap` is deprecated in favor of `lints.clippy.cast_possible_wrap` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.cast-sign-loss` is deprecated in favor of `lints.clippy.cast_sign_loss` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.clear-with-drain` is deprecated in favor of `lints.clippy.clear_with_drain` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.cloned-instead-of-copied` is deprecated in favor of `lints.clippy.cloned_instead_of_copied` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.collection-is-never-read` is deprecated in favor of `lints.clippy.collection_is_never_read` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.debug-assert-with-mut-call` is deprecated in favor of `lints.clippy.debug_assert_with_mut_call` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.derive-partial-eq-without-eq` is deprecated in favor of `lints.clippy.derive_partial_eq_without_eq` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.disallowed-names` is deprecated in favor of `lints.clippy.disallowed_names` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.doc-broken-link` is deprecated in favor of `lints.clippy.doc_broken_link` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.doc-include-without-cfg` is deprecated in favor of `lints.clippy.doc_include_without_cfg` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.doc-link-code` is deprecated in favor of `lints.clippy.doc_link_code` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.doc-link-with-quotes` is deprecated in favor of `lints.clippy.doc_link_with_quotes` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.doc-markdown` is deprecated in favor of `lints.clippy.doc_markdown` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.elidable-lifetime-names` is deprecated in favor of `lints.clippy.elidable_lifetime_names` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.empty-drop` is deprecated in favor of `lints.clippy.empty_drop` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.empty-enum-variants-with-brackets` is deprecated in favor of `lints.clippy.empty_enum_variants_with_brackets` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.empty-line-after-doc-comments` is deprecated in favor of `lints.clippy.empty_line_after_doc_comments` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.equatable-if-let` is deprecated in favor of `lints.clippy.equatable_if_let` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.error-impl-error` is deprecated in favor of `lints.clippy.error_impl_error` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.explicit-deref-methods` is deprecated in favor of `lints.clippy.explicit_deref_methods` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.filter-map-next` is deprecated in favor of `lints.clippy.filter_map_next` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.flat-map-option` is deprecated in favor of `lints.clippy.flat_map_option` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.format-collect` is deprecated in favor of `lints.clippy.format_collect` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.format-push-string` is deprecated in favor of `lints.clippy.format_push_string` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.ignored-unit-patterns` is deprecated in favor of `lints.clippy.ignored_unit_patterns` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.impl-trait-in-params` is deprecated in favor of `lints.clippy.impl_trait_in_params` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.implicit-clone` is deprecated in favor of `lints.clippy.implicit_clone` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.inefficient-to-string` is deprecated in favor of `lints.clippy.inefficient_to_string` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.infinite-loop` is deprecated in favor of `lints.clippy.infinite_loop` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.invalid-upcast-comparisons` is deprecated in favor of `lints.clippy.invalid_upcast_comparisons` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.iter-filter-is-ok` is deprecated in favor of `lints.clippy.iter_filter_is_ok` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.iter-filter-is-some` is deprecated in favor of `lints.clippy.iter_filter_is_some` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.iter-with-drain` is deprecated in favor of `lints.clippy.iter_with_drain` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.large-stack-frames` is deprecated in favor of `lints.clippy.large_stack_frames` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.large-types-passed-by-value` is deprecated in favor of `lints.clippy.large_types_passed_by_value` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.len-zero` is deprecated in favor of `lints.clippy.len_zero` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.literal-string-with-formatting-args` is deprecated in favor of `lints.clippy.literal_string_with_formatting_args` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.lossy-float-literal` is deprecated in favor of `lints.clippy.lossy_float_literal` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.macro-use-imports` is deprecated in favor of `lints.clippy.macro_use_imports` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.manual-assert` is deprecated in favor of `lints.clippy.manual_assert` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.manual-is-multiple-of` is deprecated in favor of `lints.clippy.manual_is_multiple_of` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.manual-is-power-of-two` is deprecated in favor of `lints.clippy.manual_is_power_of_two` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.manual-is-variant-and` is deprecated in favor of `lints.clippy.manual_is_variant_and` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.manual-let-else` is deprecated in favor of `lints.clippy.manual_let_else` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.map-unwrap-or` is deprecated in favor of `lints.clippy.map_unwrap_or` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.map-with-unused-argument-over-ranges` is deprecated in favor of `lints.clippy.map_with_unused_argument_over_ranges` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.match-same-arms` is deprecated in favor of `lints.clippy.match_same_arms` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.match-wildcard-for-single-variants` is deprecated in favor of `lints.clippy.match_wildcard_for_single_variants` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.maybe-infinite-iter` is deprecated in favor of `lints.clippy.maybe_infinite_iter` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.mem-forget` is deprecated in favor of `lints.clippy.mem_forget` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.mismatching-type-param-order` is deprecated in favor of `lints.clippy.mismatching_type_param_order` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.missing-asserts-for-indexing` is deprecated in favor of `lints.clippy.missing_asserts_for_indexing` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.missing-const-for-fn` is deprecated in favor of `lints.clippy.missing_const_for_fn` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.module-name-repetitions` is deprecated in favor of `lints.clippy.module_name_repetitions` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.multiple-crate-versions` is deprecated in favor of `lints.clippy.multiple_crate_versions` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.mut-mut` is deprecated in favor of `lints.clippy.mut_mut` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.mutex-atomic` is deprecated in favor of `lints.clippy.mutex_atomic` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.naive-bytecount` is deprecated in favor of `lints.clippy.naive_bytecount` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.needless-bitwise-bool` is deprecated in favor of `lints.clippy.needless_bitwise_bool` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.needless-collect` is deprecated in favor of `lints.clippy.needless_collect` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.needless-continue` is deprecated in favor of `lints.clippy.needless_continue` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.needless-pass-by-ref-mut` is deprecated in favor of `lints.clippy.needless_pass_by_ref_mut` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.needless-raw-string-hashes` is deprecated in favor of `lints.clippy.needless_raw_string_hashes` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.needless-raw-strings` is deprecated in favor of `lints.clippy.needless_raw_strings` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.no-effect-underscore-binding` is deprecated in favor of `lints.clippy.no_effect_underscore_binding` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.non-std-lazy-statics` is deprecated in favor of `lints.clippy.non_std_lazy_statics` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.non-zero-suggestions` is deprecated in favor of `lints.clippy.non_zero_suggestions` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.nonstandard-macro-braces` is deprecated in favor of `lints.clippy.nonstandard_macro_braces` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.option-as-ref-cloned` is deprecated in favor of `lints.clippy.option_as_ref_cloned` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.precedence-bits` is deprecated in favor of `lints.clippy.precedence_bits` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.pub-underscore-fields` is deprecated in favor of `lints.clippy.pub_underscore_fields` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.range-minus-one` is deprecated in favor of `lints.clippy.range_minus_one` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.range-plus-one` is deprecated in favor of `lints.clippy.range_plus_one` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.read-zero-byte-vec` is deprecated in favor of `lints.clippy.read_zero_byte_vec` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.redundant-clone` is deprecated in favor of `lints.clippy.redundant_clone` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.redundant-closure-for-method-calls` is deprecated in favor of `lints.clippy.redundant_closure_for_method_calls` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.redundant-test-prefix` is deprecated in favor of `lints.clippy.redundant_test_prefix` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.ref-as-ptr` is deprecated in favor of `lints.clippy.ref_as_ptr` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.ref-binding-to-reference` is deprecated in favor of `lints.clippy.ref_binding_to_reference` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.ref-option` is deprecated in favor of `lints.clippy.ref_option` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.ref-option-ref` is deprecated in favor of `lints.clippy.ref_option_ref` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.ref-patterns` is deprecated in favor of `lints.clippy.ref_patterns` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.renamed-function-params` is deprecated in favor of `lints.clippy.renamed_function_params` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.rest-pat-in-fully-bound-structs` is deprecated in favor of `lints.clippy.rest_pat_in_fully_bound_structs` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.same-functions-in-if-condition` is deprecated in favor of `lints.clippy.same_functions_in_if_condition` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.same-name-method` is deprecated in favor of `lints.clippy.same_name_method` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.set-contains-or-insert` is deprecated in favor of `lints.clippy.set_contains_or_insert` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.significant-drop-in-scrutinee` is deprecated in favor of `lints.clippy.significant_drop_in_scrutinee` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.significant-drop-tightening` is deprecated in favor of `lints.clippy.significant_drop_tightening` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.single-char-pattern` is deprecated in favor of `lints.clippy.single_char_pattern` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.single-component-path-imports` is deprecated in favor of `lints.clippy.single_component_path_imports` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.single-match` is deprecated in favor of `lints.clippy.single_match` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.single-option-map` is deprecated in favor of `lints.clippy.single_option_map` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.str-split-at-newline` is deprecated in favor of `lints.clippy.str_split_at_newline` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.string-add-assign` is deprecated in favor of `lints.clippy.string_add_assign` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.suboptimal-flops` is deprecated in favor of `lints.clippy.suboptimal_flops` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.suspicious-xor-used-as-pow` is deprecated in favor of `lints.clippy.suspicious_xor_used_as_pow` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.trait-duplication-in-bounds` is deprecated in favor of `lints.clippy.trait_duplication_in_bounds` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.transmute-ptr-to-ptr` is deprecated in favor of `lints.clippy.transmute_ptr_to_ptr` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.trivial-regex` is deprecated in favor of `lints.clippy.trivial_regex` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.trivially-copy-pass-by-ref` is deprecated in favor of `lints.clippy.trivially_copy_pass_by_ref` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.try-err` is deprecated in favor of `lints.clippy.try_err` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.type-complexity` is deprecated in favor of `lints.clippy.type_complexity` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.type-repetition-in-bounds` is deprecated in favor of `lints.clippy.type_repetition_in_bounds` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.uninhabited-references` is deprecated in favor of `lints.clippy.uninhabited_references` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.uninlined-format-args` is deprecated in favor of `lints.clippy.uninlined_format_args` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unnecessary-debug-formatting` is deprecated in favor of `lints.clippy.unnecessary_debug_formatting` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unnecessary-join` is deprecated in favor of `lints.clippy.unnecessary_join` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unnecessary-literal-bound` is deprecated in favor of `lints.clippy.unnecessary_literal_bound` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unnecessary-semicolon` is deprecated in favor of `lints.clippy.unnecessary_semicolon` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unnecessary-struct-initialization` is deprecated in favor of `lints.clippy.unnecessary_struct_initialization` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unnecessary-wraps` is deprecated in favor of `lints.clippy.unnecessary_wraps` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unneeded-field-pattern` is deprecated in favor of `lints.clippy.unneeded_field_pattern` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unsafe-derive-deserialize` is deprecated in favor of `lints.clippy.unsafe_derive_deserialize` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unused-async` is deprecated in favor of `lints.clippy.unused_async` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unused-peekable` is deprecated in favor of `lints.clippy.unused_peekable` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unused-result-ok` is deprecated in favor of `lints.clippy.unused_result_ok` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unused-rounding` is deprecated in favor of `lints.clippy.unused_rounding` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unused-self` is deprecated in favor of `lints.clippy.unused_self` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.used-underscore-binding` is deprecated in favor of `lints.clippy.used_underscore_binding` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.used-underscore-items` is deprecated in favor of `lints.clippy.used_underscore_items` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.useless-let-if-seq` is deprecated in favor of `lints.clippy.useless_let_if_seq` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.verbose-bit-mask` is deprecated in favor of `lints.clippy.verbose_bit_mask` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.verbose-file-reads` is deprecated in favor of `lints.clippy.verbose_file_reads` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.while-float` is deprecated in favor of `lints.clippy.while_float` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.zero-sized-map-values` is deprecated in favor of `lints.clippy.zero_sized_map_values` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.ambiguous-negative-literals` is deprecated in favor of `lints.rust.ambiguous_negative_literals` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.closure-returning-async-block` is deprecated in favor of `lints.rust.closure_returning_async_block` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.explicit-outlives-requirements` is deprecated in favor of `lints.rust.explicit_outlives_requirements` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.linker-messages` is deprecated in favor of `lints.rust.linker_messages` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.meta-variable-misuse` is deprecated in favor of `lints.rust.meta_variable_misuse` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.redundant-lifetimes` is deprecated in favor of `lints.rust.redundant_lifetimes` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.trivial-numeric-casts` is deprecated in favor of `lints.rust.trivial_numeric_casts` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unit-bindings` is deprecated in favor of `lints.rust.unit_bindings` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unknown-lints` is deprecated in favor of `lints.rust.unknown_lints` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unnameable-types` is deprecated in favor of `lints.rust.unnameable_types` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unreachable-pub` is deprecated in favor of `lints.rust.unreachable_pub` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unused-extern-crates` is deprecated in favor of `lints.rust.unused_extern_crates` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unused-import-braces` is deprecated in favor of `lints.rust.unused_import_braces` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unused-lifetimes` is deprecated in favor of `lints.rust.unused_lifetimes` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unused-macro-rules` is deprecated in favor of `lints.rust.unused_macro_rules` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unused-qualifications` is deprecated in favor of `lints.rust.unused_qualifications` and will not work in a future edition
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]    --> Cargo.toml:235:1
[INFO] [stderr]     |
[INFO] [stderr] 235 | readme = "README.md"
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `nsys-math-utils` (manifest) generated 148 warnings
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4cf1bb76bd7b6b3e9acda850b926f4a58a9061bb412e0fe04794b65c3fb6101f
[INFO] running `Command { std: "docker" "start" "4cf1bb76bd7b6b3e9acda850b926f4a58a9061bb412e0fe04794b65c3fb6101f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4cf1bb76bd7b6b3e9acda850b926f4a58a9061bb412e0fe04794b65c3fb6101f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4cf1bb76bd7b6b3e9acda850b926f4a58a9061bb412e0fe04794b65c3fb6101f" "/opt/rustwide/cargo-home/bin/cargo" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4cf1bb76bd7b6b3e9acda850b926f4a58a9061bb412e0fe04794b65c3fb6101f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4cf1bb76bd7b6b3e9acda850b926f4a58a9061bb412e0fe04794b65c3fb6101f" "/opt/rustwide/cargo-home/bin/cargo" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.allow-attributes` is deprecated in favor of `lints.clippy.allow_attributes` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.assertions-on-result-states` is deprecated in favor of `lints.clippy.assertions_on_result_states` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.bool-to-int-with-if` is deprecated in favor of `lints.clippy.bool_to_int_with_if` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.branches-sharing-code` is deprecated in favor of `lints.clippy.branches_sharing_code` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.cast-possible-truncation` is deprecated in favor of `lints.clippy.cast_possible_truncation` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.cast-possible-wrap` is deprecated in favor of `lints.clippy.cast_possible_wrap` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.cast-sign-loss` is deprecated in favor of `lints.clippy.cast_sign_loss` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.clear-with-drain` is deprecated in favor of `lints.clippy.clear_with_drain` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.cloned-instead-of-copied` is deprecated in favor of `lints.clippy.cloned_instead_of_copied` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.collection-is-never-read` is deprecated in favor of `lints.clippy.collection_is_never_read` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.debug-assert-with-mut-call` is deprecated in favor of `lints.clippy.debug_assert_with_mut_call` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.derive-partial-eq-without-eq` is deprecated in favor of `lints.clippy.derive_partial_eq_without_eq` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.disallowed-names` is deprecated in favor of `lints.clippy.disallowed_names` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.doc-broken-link` is deprecated in favor of `lints.clippy.doc_broken_link` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.doc-include-without-cfg` is deprecated in favor of `lints.clippy.doc_include_without_cfg` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.doc-link-code` is deprecated in favor of `lints.clippy.doc_link_code` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.doc-link-with-quotes` is deprecated in favor of `lints.clippy.doc_link_with_quotes` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.doc-markdown` is deprecated in favor of `lints.clippy.doc_markdown` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.elidable-lifetime-names` is deprecated in favor of `lints.clippy.elidable_lifetime_names` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.empty-drop` is deprecated in favor of `lints.clippy.empty_drop` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.empty-enum-variants-with-brackets` is deprecated in favor of `lints.clippy.empty_enum_variants_with_brackets` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.empty-line-after-doc-comments` is deprecated in favor of `lints.clippy.empty_line_after_doc_comments` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.equatable-if-let` is deprecated in favor of `lints.clippy.equatable_if_let` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.error-impl-error` is deprecated in favor of `lints.clippy.error_impl_error` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.explicit-deref-methods` is deprecated in favor of `lints.clippy.explicit_deref_methods` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.filter-map-next` is deprecated in favor of `lints.clippy.filter_map_next` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.flat-map-option` is deprecated in favor of `lints.clippy.flat_map_option` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.format-collect` is deprecated in favor of `lints.clippy.format_collect` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.format-push-string` is deprecated in favor of `lints.clippy.format_push_string` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.ignored-unit-patterns` is deprecated in favor of `lints.clippy.ignored_unit_patterns` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.impl-trait-in-params` is deprecated in favor of `lints.clippy.impl_trait_in_params` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.implicit-clone` is deprecated in favor of `lints.clippy.implicit_clone` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.inefficient-to-string` is deprecated in favor of `lints.clippy.inefficient_to_string` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.infinite-loop` is deprecated in favor of `lints.clippy.infinite_loop` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.invalid-upcast-comparisons` is deprecated in favor of `lints.clippy.invalid_upcast_comparisons` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.iter-filter-is-ok` is deprecated in favor of `lints.clippy.iter_filter_is_ok` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.iter-filter-is-some` is deprecated in favor of `lints.clippy.iter_filter_is_some` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.iter-with-drain` is deprecated in favor of `lints.clippy.iter_with_drain` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.large-stack-frames` is deprecated in favor of `lints.clippy.large_stack_frames` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.large-types-passed-by-value` is deprecated in favor of `lints.clippy.large_types_passed_by_value` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.len-zero` is deprecated in favor of `lints.clippy.len_zero` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.literal-string-with-formatting-args` is deprecated in favor of `lints.clippy.literal_string_with_formatting_args` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.lossy-float-literal` is deprecated in favor of `lints.clippy.lossy_float_literal` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.macro-use-imports` is deprecated in favor of `lints.clippy.macro_use_imports` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.manual-assert` is deprecated in favor of `lints.clippy.manual_assert` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.manual-is-multiple-of` is deprecated in favor of `lints.clippy.manual_is_multiple_of` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.manual-is-power-of-two` is deprecated in favor of `lints.clippy.manual_is_power_of_two` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.manual-is-variant-and` is deprecated in favor of `lints.clippy.manual_is_variant_and` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.manual-let-else` is deprecated in favor of `lints.clippy.manual_let_else` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.map-unwrap-or` is deprecated in favor of `lints.clippy.map_unwrap_or` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.map-with-unused-argument-over-ranges` is deprecated in favor of `lints.clippy.map_with_unused_argument_over_ranges` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.match-same-arms` is deprecated in favor of `lints.clippy.match_same_arms` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.match-wildcard-for-single-variants` is deprecated in favor of `lints.clippy.match_wildcard_for_single_variants` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.maybe-infinite-iter` is deprecated in favor of `lints.clippy.maybe_infinite_iter` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.mem-forget` is deprecated in favor of `lints.clippy.mem_forget` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.mismatching-type-param-order` is deprecated in favor of `lints.clippy.mismatching_type_param_order` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.missing-asserts-for-indexing` is deprecated in favor of `lints.clippy.missing_asserts_for_indexing` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.missing-const-for-fn` is deprecated in favor of `lints.clippy.missing_const_for_fn` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.module-name-repetitions` is deprecated in favor of `lints.clippy.module_name_repetitions` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.multiple-crate-versions` is deprecated in favor of `lints.clippy.multiple_crate_versions` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.mut-mut` is deprecated in favor of `lints.clippy.mut_mut` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.mutex-atomic` is deprecated in favor of `lints.clippy.mutex_atomic` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.naive-bytecount` is deprecated in favor of `lints.clippy.naive_bytecount` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.needless-bitwise-bool` is deprecated in favor of `lints.clippy.needless_bitwise_bool` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.needless-collect` is deprecated in favor of `lints.clippy.needless_collect` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.needless-continue` is deprecated in favor of `lints.clippy.needless_continue` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.needless-pass-by-ref-mut` is deprecated in favor of `lints.clippy.needless_pass_by_ref_mut` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.needless-raw-string-hashes` is deprecated in favor of `lints.clippy.needless_raw_string_hashes` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.needless-raw-strings` is deprecated in favor of `lints.clippy.needless_raw_strings` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.no-effect-underscore-binding` is deprecated in favor of `lints.clippy.no_effect_underscore_binding` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.non-std-lazy-statics` is deprecated in favor of `lints.clippy.non_std_lazy_statics` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.non-zero-suggestions` is deprecated in favor of `lints.clippy.non_zero_suggestions` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.nonstandard-macro-braces` is deprecated in favor of `lints.clippy.nonstandard_macro_braces` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.option-as-ref-cloned` is deprecated in favor of `lints.clippy.option_as_ref_cloned` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.precedence-bits` is deprecated in favor of `lints.clippy.precedence_bits` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.pub-underscore-fields` is deprecated in favor of `lints.clippy.pub_underscore_fields` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.range-minus-one` is deprecated in favor of `lints.clippy.range_minus_one` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.range-plus-one` is deprecated in favor of `lints.clippy.range_plus_one` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.read-zero-byte-vec` is deprecated in favor of `lints.clippy.read_zero_byte_vec` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.redundant-clone` is deprecated in favor of `lints.clippy.redundant_clone` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.redundant-closure-for-method-calls` is deprecated in favor of `lints.clippy.redundant_closure_for_method_calls` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.redundant-test-prefix` is deprecated in favor of `lints.clippy.redundant_test_prefix` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.ref-as-ptr` is deprecated in favor of `lints.clippy.ref_as_ptr` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.ref-binding-to-reference` is deprecated in favor of `lints.clippy.ref_binding_to_reference` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.ref-option` is deprecated in favor of `lints.clippy.ref_option` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.ref-option-ref` is deprecated in favor of `lints.clippy.ref_option_ref` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.ref-patterns` is deprecated in favor of `lints.clippy.ref_patterns` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.renamed-function-params` is deprecated in favor of `lints.clippy.renamed_function_params` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.rest-pat-in-fully-bound-structs` is deprecated in favor of `lints.clippy.rest_pat_in_fully_bound_structs` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.same-functions-in-if-condition` is deprecated in favor of `lints.clippy.same_functions_in_if_condition` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.same-name-method` is deprecated in favor of `lints.clippy.same_name_method` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.set-contains-or-insert` is deprecated in favor of `lints.clippy.set_contains_or_insert` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.significant-drop-in-scrutinee` is deprecated in favor of `lints.clippy.significant_drop_in_scrutinee` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.significant-drop-tightening` is deprecated in favor of `lints.clippy.significant_drop_tightening` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.single-char-pattern` is deprecated in favor of `lints.clippy.single_char_pattern` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.single-component-path-imports` is deprecated in favor of `lints.clippy.single_component_path_imports` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.single-match` is deprecated in favor of `lints.clippy.single_match` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.single-option-map` is deprecated in favor of `lints.clippy.single_option_map` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.str-split-at-newline` is deprecated in favor of `lints.clippy.str_split_at_newline` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.string-add-assign` is deprecated in favor of `lints.clippy.string_add_assign` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.suboptimal-flops` is deprecated in favor of `lints.clippy.suboptimal_flops` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.suspicious-xor-used-as-pow` is deprecated in favor of `lints.clippy.suspicious_xor_used_as_pow` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.trait-duplication-in-bounds` is deprecated in favor of `lints.clippy.trait_duplication_in_bounds` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.transmute-ptr-to-ptr` is deprecated in favor of `lints.clippy.transmute_ptr_to_ptr` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.trivial-regex` is deprecated in favor of `lints.clippy.trivial_regex` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.trivially-copy-pass-by-ref` is deprecated in favor of `lints.clippy.trivially_copy_pass_by_ref` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.try-err` is deprecated in favor of `lints.clippy.try_err` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.type-complexity` is deprecated in favor of `lints.clippy.type_complexity` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.type-repetition-in-bounds` is deprecated in favor of `lints.clippy.type_repetition_in_bounds` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.uninhabited-references` is deprecated in favor of `lints.clippy.uninhabited_references` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.uninlined-format-args` is deprecated in favor of `lints.clippy.uninlined_format_args` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unnecessary-debug-formatting` is deprecated in favor of `lints.clippy.unnecessary_debug_formatting` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unnecessary-join` is deprecated in favor of `lints.clippy.unnecessary_join` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unnecessary-literal-bound` is deprecated in favor of `lints.clippy.unnecessary_literal_bound` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unnecessary-semicolon` is deprecated in favor of `lints.clippy.unnecessary_semicolon` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unnecessary-struct-initialization` is deprecated in favor of `lints.clippy.unnecessary_struct_initialization` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unnecessary-wraps` is deprecated in favor of `lints.clippy.unnecessary_wraps` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unneeded-field-pattern` is deprecated in favor of `lints.clippy.unneeded_field_pattern` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unsafe-derive-deserialize` is deprecated in favor of `lints.clippy.unsafe_derive_deserialize` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unused-async` is deprecated in favor of `lints.clippy.unused_async` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unused-peekable` is deprecated in favor of `lints.clippy.unused_peekable` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unused-result-ok` is deprecated in favor of `lints.clippy.unused_result_ok` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unused-rounding` is deprecated in favor of `lints.clippy.unused_rounding` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.unused-self` is deprecated in favor of `lints.clippy.unused_self` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.used-underscore-binding` is deprecated in favor of `lints.clippy.used_underscore_binding` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.used-underscore-items` is deprecated in favor of `lints.clippy.used_underscore_items` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.useless-let-if-seq` is deprecated in favor of `lints.clippy.useless_let_if_seq` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.verbose-bit-mask` is deprecated in favor of `lints.clippy.verbose_bit_mask` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.verbose-file-reads` is deprecated in favor of `lints.clippy.verbose_file_reads` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.while-float` is deprecated in favor of `lints.clippy.while_float` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.clippy.zero-sized-map-values` is deprecated in favor of `lints.clippy.zero_sized_map_values` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.ambiguous-negative-literals` is deprecated in favor of `lints.rust.ambiguous_negative_literals` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.closure-returning-async-block` is deprecated in favor of `lints.rust.closure_returning_async_block` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.explicit-outlives-requirements` is deprecated in favor of `lints.rust.explicit_outlives_requirements` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.linker-messages` is deprecated in favor of `lints.rust.linker_messages` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.meta-variable-misuse` is deprecated in favor of `lints.rust.meta_variable_misuse` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.redundant-lifetimes` is deprecated in favor of `lints.rust.redundant_lifetimes` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.trivial-numeric-casts` is deprecated in favor of `lints.rust.trivial_numeric_casts` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unit-bindings` is deprecated in favor of `lints.rust.unit_bindings` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unknown-lints` is deprecated in favor of `lints.rust.unknown_lints` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unnameable-types` is deprecated in favor of `lints.rust.unnameable_types` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unreachable-pub` is deprecated in favor of `lints.rust.unreachable_pub` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unused-extern-crates` is deprecated in favor of `lints.rust.unused_extern_crates` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unused-import-braces` is deprecated in favor of `lints.rust.unused_import_braces` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unused-lifetimes` is deprecated in favor of `lints.rust.unused_lifetimes` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unused-macro-rules` is deprecated in favor of `lints.rust.unused_macro_rules` and will not work in a future edition
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unused-qualifications` is deprecated in favor of `lints.rust.unused_qualifications` and will not work in a future edition
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]    --> Cargo.toml:235:1
[INFO] [stderr]     |
[INFO] [stderr] 235 | readme = "README.md"
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `nsys-math-utils` (manifest) generated 148 warnings
[INFO] [stderr]    Compiling zerocopy v0.8.54
[INFO] [stderr]    Compiling fixed v1.30.0
[INFO] [stderr]     Checking az v1.3.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking bytemuck v1.25.1
[INFO] [stderr]    Compiling vek v0.17.2
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]     Checking unreachable v1.0.0
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking rand_xorshift v0.5.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking integer-sqrt v0.1.5
[INFO] [stderr]     Checking rand_distr v0.6.0
[INFO] [stderr]     Checking serde_json v1.0.150
[INFO] [stderr]     Checking sorted-vec v0.8.10
[INFO] [stderr]    Compiling zerocopy-derive v0.8.54
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]     Checking strum v0.28.0
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking stash v0.1.6
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking fixed-sqrt v0.3.0
[INFO] [stderr]     Checking cordic v0.1.5
[INFO] [stderr]     Checking nsys-math-utils v0.9.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:201:3
[INFO] [stdout]     |
[INFO] [stdout] 201 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:201:3
[INFO] [stdout]     |
[INFO] [stdout] 201 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:238:3
[INFO] [stdout]     |
[INFO] [stdout] 238 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:284:3
[INFO] [stdout]     |
[INFO] [stdout] 284 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:238:3
[INFO] [stdout]     |
[INFO] [stdout] 238 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:361:3
[INFO] [stdout]     |
[INFO] [stdout] 361 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:284:3
[INFO] [stdout]     |
[INFO] [stdout] 284 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:361:3
[INFO] [stdout]     |
[INFO] [stdout] 361 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:443:3
[INFO] [stdout]     |
[INFO] [stdout] 443 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:443:3
[INFO] [stdout]     |
[INFO] [stdout] 443 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:528:3
[INFO] [stdout]     |
[INFO] [stdout] 528 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:528:3
[INFO] [stdout]     |
[INFO] [stdout] 528 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:572:3
[INFO] [stdout]     |
[INFO] [stdout] 572 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:631:3
[INFO] [stdout]     |
[INFO] [stdout] 631 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:572:3
[INFO] [stdout]     |
[INFO] [stdout] 572 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:631:3
[INFO] [stdout]     |
[INFO] [stdout] 631 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:722:3
[INFO] [stdout]     |
[INFO] [stdout] 722 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:722:3
[INFO] [stdout]     |
[INFO] [stdout] 722 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:746:3
[INFO] [stdout]     |
[INFO] [stdout] 746 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:746:3
[INFO] [stdout]     |
[INFO] [stdout] 746 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:798:3
[INFO] [stdout]     |
[INFO] [stdout] 798 |   fn to_primitive (&self, base : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:798:3
[INFO] [stdout]     |
[INFO] [stdout] 798 |   fn to_primitive (&self, base : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:872:3
[INFO] [stdout]     |
[INFO] [stdout] 872 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:872:3
[INFO] [stdout]     |
[INFO] [stdout] 872 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:201:58
[INFO] [stdout]     |
[INFO] [stdout] 201 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 201 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 201 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:238:58
[INFO] [stdout]     |
[INFO] [stdout] 238 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 238 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 238 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:201:58
[INFO] [stdout]     |
[INFO] [stdout] 201 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 201 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 201 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:284:58
[INFO] [stdout]     |
[INFO] [stdout] 284 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 284 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 284 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:238:58
[INFO] [stdout]     |
[INFO] [stdout] 238 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 238 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 238 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:284:58
[INFO] [stdout]     |
[INFO] [stdout] 284 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 284 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 284 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:361:58
[INFO] [stdout]     |
[INFO] [stdout] 361 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 361 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 361 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:361:58
[INFO] [stdout]     |
[INFO] [stdout] 361 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 361 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 361 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:443:58
[INFO] [stdout]     |
[INFO] [stdout] 443 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 443 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 443 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:528:58
[INFO] [stdout]     |
[INFO] [stdout] 528 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 528 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 528 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:572:58
[INFO] [stdout]     |
[INFO] [stdout] 572 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 572 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 572 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:631:58
[INFO] [stdout]     |
[INFO] [stdout] 631 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 631 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 631 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:722:58
[INFO] [stdout]     |
[INFO] [stdout] 722 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 722 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 722 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:746:58
[INFO] [stdout]     |
[INFO] [stdout] 746 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 746 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 746 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:798:54
[INFO] [stdout]     |
[INFO] [stdout] 798 |   fn to_primitive (&self, base : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 798 -   fn to_primitive (&self, base : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 798 +   fn to_primitive (&self, base : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:872:58
[INFO] [stdout]     |
[INFO] [stdout] 872 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 872 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 872 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:443:58
[INFO] [stdout]     |
[INFO] [stdout] 443 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 443 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 443 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:528:58
[INFO] [stdout]     |
[INFO] [stdout] 528 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 528 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 528 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:572:58
[INFO] [stdout]     |
[INFO] [stdout] 572 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 572 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 572 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:631:58
[INFO] [stdout]     |
[INFO] [stdout] 631 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 631 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 631 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:722:58
[INFO] [stdout]     |
[INFO] [stdout] 722 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 722 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 722 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:746:58
[INFO] [stdout]     |
[INFO] [stdout] 746 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 746 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 746 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:798:54
[INFO] [stdout]     |
[INFO] [stdout] 798 |   fn to_primitive (&self, base : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 798 -   fn to_primitive (&self, base : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 798 +   fn to_primitive (&self, base : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:872:58
[INFO] [stdout]     |
[INFO] [stdout] 872 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout] 872 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 872 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:25:58
[INFO] [stdout]     |
[INFO] [stdout]  25 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>>;
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  25 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>>;
[INFO] [stdout]  25 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self>;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:25:58
[INFO] [stdout]     |
[INFO] [stdout]  25 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>>;
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]     |
[INFO] [stdout]  25 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>>;
[INFO] [stdout]  25 +   fn to_primitive (&self, position : Point3 <S>) -> Box <Self>;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:203:49
[INFO] [stdout]     |
[INFO] [stdout] 203 |       Variant::Bounded   (bounded)   => bounded.to_primitive (position),
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:204:51
[INFO] [stdout]     |
[INFO] [stdout] 204 |       Variant::Unbounded (unbounded) => unbounded.to_primitive (position)
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:240:46
[INFO] [stdout]     |
[INFO] [stdout] 240 |       Bounded::Sphere   (sphere)   => sphere.to_primitive (position),
[INFO] [stdout]     |                                              ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:241:47
[INFO] [stdout]     |
[INFO] [stdout] 241 |       Bounded::Capsule  (capsule)  => capsule.to_primitive (position),
[INFO] [stdout]     |                                               ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:242:48
[INFO] [stdout]     |
[INFO] [stdout] 242 |       Bounded::Cylinder (cylinder) => cylinder.to_primitive (position),
[INFO] [stdout]     |                                                ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:243:46
[INFO] [stdout]     |
[INFO] [stdout] 243 |       Bounded::Cuboid   (cuboid)   => cuboid.to_primitive (position),
[INFO] [stdout]     |                                              ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:244:44
[INFO] [stdout]     |
[INFO] [stdout] 244 |       Bounded::Hull     (hull)     => hull.to_primitive (position),
[INFO] [stdout]     |                                            ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:245:44
[INFO] [stdout]     |
[INFO] [stdout] 245 |       Bounded::Cone     (cone)     => cone.to_primitive (position),
[INFO] [stdout]     |                                            ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:246:44
[INFO] [stdout]     |
[INFO] [stdout] 246 |       Bounded::Cube     (cube)     => cube.to_primitive (position)
[INFO] [stdout]     |                                            ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:286:51
[INFO] [stdout]     |
[INFO] [stdout] 286 |       Unbounded::Orthant   (orthant)   => orthant.to_primitive (position),
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:287:53
[INFO] [stdout]     |
[INFO] [stdout] 287 |       Unbounded::Halfspace (halfspace) => halfspace.to_primitive (position)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:361:62
[INFO] [stdout]     |
[INFO] [stdout] 361 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 361 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 361 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:362:5
[INFO] [stdout]     |
[INFO] [stdout] 361 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] 362 |     Box::new (self.sphere3 (position))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Sphere3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Sphere3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Sphere3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:443:62
[INFO] [stdout]     |
[INFO] [stdout] 443 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 443 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 443 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:444:5
[INFO] [stdout]     |
[INFO] [stdout] 443 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] 444 |     Box::new (self.capsule3 (position))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Capsule3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Capsule3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Capsule3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:528:62
[INFO] [stdout]     |
[INFO] [stdout] 528 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 528 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 528 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:529:5
[INFO] [stdout]     |
[INFO] [stdout] 528 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] 529 |     Box::new (self.cylinder3 (position))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Cylinder3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Cylinder3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Cylinder3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:572:62
[INFO] [stdout]     |
[INFO] [stdout] 572 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 572 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 572 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:573:5
[INFO] [stdout]     |
[INFO] [stdout] 572 |     fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                       ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] 573 | /     Box::new (Cone3 {
[INFO] [stdout] 574 | |       center:      position,
[INFO] [stdout] 575 | |       half_height: self.half_height,
[INFO] [stdout] 576 | |       radius:      self.radius
[INFO] [stdout] 577 | |     })
[INFO] [stdout]     | |______^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Cone3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Cone3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Cone3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:631:62
[INFO] [stdout]     |
[INFO] [stdout] 631 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 631 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 631 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:634:5
[INFO] [stdout]     |
[INFO] [stdout] 631 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 634 |     Box::new (aabb)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Aabb3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Aabb3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Aabb3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:722:62
[INFO] [stdout]     |
[INFO] [stdout] 722 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 722 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 722 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:725:5
[INFO] [stdout]     |
[INFO] [stdout] 722 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 725 |     Box::new (aabb)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Aabb3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Aabb3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Aabb3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:746:62
[INFO] [stdout]     |
[INFO] [stdout] 746 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 746 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 746 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:749:5
[INFO] [stdout]     |
[INFO] [stdout] 746 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 749 |     Box::new ((hull, mesh))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<(Hull3<S>, Arc<_>)>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<(hull::Hull3<S>, Arc<VertexEdgeTriangleMesh>)>`
[INFO] [stdout]     = help: `(hull::Hull3<S>, Arc<VertexEdgeTriangleMesh>)` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:798:58
[INFO] [stdout]     |
[INFO] [stdout] 798 |   fn to_primitive (&self, base : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 798 -   fn to_primitive (&self, base : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 798 +   fn to_primitive (&self, base : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:799:5
[INFO] [stdout]     |
[INFO] [stdout] 798 |   fn to_primitive (&self, base : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                 ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] 799 |     Box::new (Plane3 { base, normal: self.normal_axis.to_unit() })
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Plane3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Plane3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Plane3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:872:62
[INFO] [stdout]     |
[INFO] [stdout] 872 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 872 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 872 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:873:5
[INFO] [stdout]     |
[INFO] [stdout] 872 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] 873 |     Box::new (self.plane3 (position))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Plane3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Plane3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Plane3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:203:49
[INFO] [stdout]     |
[INFO] [stdout] 203 |       Variant::Bounded   (bounded)   => bounded.to_primitive (position),
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:204:51
[INFO] [stdout]     |
[INFO] [stdout] 204 |       Variant::Unbounded (unbounded) => unbounded.to_primitive (position)
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:240:46
[INFO] [stdout]     |
[INFO] [stdout] 240 |       Bounded::Sphere   (sphere)   => sphere.to_primitive (position),
[INFO] [stdout]     |                                              ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:241:47
[INFO] [stdout]     |
[INFO] [stdout] 241 |       Bounded::Capsule  (capsule)  => capsule.to_primitive (position),
[INFO] [stdout]     |                                               ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:242:48
[INFO] [stdout]     |
[INFO] [stdout] 242 |       Bounded::Cylinder (cylinder) => cylinder.to_primitive (position),
[INFO] [stdout]     |                                                ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:243:46
[INFO] [stdout]     |
[INFO] [stdout] 243 |       Bounded::Cuboid   (cuboid)   => cuboid.to_primitive (position),
[INFO] [stdout]     |                                              ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:244:44
[INFO] [stdout]     |
[INFO] [stdout] 244 |       Bounded::Hull     (hull)     => hull.to_primitive (position),
[INFO] [stdout]     |                                            ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:245:44
[INFO] [stdout]     |
[INFO] [stdout] 245 |       Bounded::Cone     (cone)     => cone.to_primitive (position),
[INFO] [stdout]     |                                            ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:246:44
[INFO] [stdout]     |
[INFO] [stdout] 246 |       Bounded::Cube     (cube)     => cube.to_primitive (position)
[INFO] [stdout]     |                                            ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:286:51
[INFO] [stdout]     |
[INFO] [stdout] 286 |       Unbounded::Orthant   (orthant)   => orthant.to_primitive (position),
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:287:53
[INFO] [stdout]     |
[INFO] [stdout] 287 |       Unbounded::Halfspace (halfspace) => halfspace.to_primitive (position)
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:361:62
[INFO] [stdout]     |
[INFO] [stdout] 361 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 361 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 361 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:362:5
[INFO] [stdout]     |
[INFO] [stdout] 361 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] 362 |     Box::new (self.sphere3 (position))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Sphere3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Sphere3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Sphere3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:443:62
[INFO] [stdout]     |
[INFO] [stdout] 443 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 443 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 443 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:444:5
[INFO] [stdout]     |
[INFO] [stdout] 443 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] 444 |     Box::new (self.capsule3 (position))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Capsule3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Capsule3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Capsule3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:528:62
[INFO] [stdout]     |
[INFO] [stdout] 528 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 528 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 528 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:529:5
[INFO] [stdout]     |
[INFO] [stdout] 528 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] 529 |     Box::new (self.cylinder3 (position))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Cylinder3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Cylinder3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Cylinder3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:572:62
[INFO] [stdout]     |
[INFO] [stdout] 572 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 572 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 572 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:573:5
[INFO] [stdout]     |
[INFO] [stdout] 572 |     fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                       ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] 573 | /     Box::new (Cone3 {
[INFO] [stdout] 574 | |       center:      position,
[INFO] [stdout] 575 | |       half_height: self.half_height,
[INFO] [stdout] 576 | |       radius:      self.radius
[INFO] [stdout] 577 | |     })
[INFO] [stdout]     | |______^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Cone3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Cone3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Cone3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:631:62
[INFO] [stdout]     |
[INFO] [stdout] 631 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 631 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 631 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:634:5
[INFO] [stdout]     |
[INFO] [stdout] 631 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 634 |     Box::new (aabb)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Aabb3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Aabb3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Aabb3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:722:62
[INFO] [stdout]     |
[INFO] [stdout] 722 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 722 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 722 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:725:5
[INFO] [stdout]     |
[INFO] [stdout] 722 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 725 |     Box::new (aabb)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Aabb3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Aabb3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Aabb3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:746:62
[INFO] [stdout]     |
[INFO] [stdout] 746 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 746 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 746 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:749:5
[INFO] [stdout]     |
[INFO] [stdout] 746 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 749 |     Box::new ((hull, mesh))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<(Hull3<S>, Arc<_>)>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<(hull::Hull3<S>, Arc<VertexEdgeTriangleMesh>)>`
[INFO] [stdout]     = help: `(hull::Hull3<S>, Arc<VertexEdgeTriangleMesh>)` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:798:58
[INFO] [stdout]     |
[INFO] [stdout] 798 |   fn to_primitive (&self, base : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 798 -   fn to_primitive (&self, base : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 798 +   fn to_primitive (&self, base : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:799:5
[INFO] [stdout]     |
[INFO] [stdout] 798 |   fn to_primitive (&self, base : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                 ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] 799 |     Box::new (Plane3 { base, normal: self.normal_axis.to_unit() })
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Plane3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Plane3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Plane3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]    --> src/geometry/shape.rs:872:62
[INFO] [stdout]     |
[INFO] [stdout] 872 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ `geometry::primitive::Primitive` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/traits.rs:49:52
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub trait Point <V> : Sized + std::ops::Sub <Self, Output=V> where
[INFO] [stdout]     |                                                    ^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout] ...
[INFO] [stdout] 266 |   std::ops::Sub <Self, Output=Self> + std::ops::SubAssign + std::ops::Neg <Output=Self>
[INFO] [stdout]     |                        ^^^^^^^^^^^ ...because it has conflicting associated item bounds for `Output` in supertraits: `<S as std::ops::Sub>::Output == S` and `<P as std::ops::Sub>::Output == <P as traits::AffineSpace<S>>::Translation`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/geometry/primitive/mod.rs:48:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | pub trait Primitive <S, P> : std::fmt::Debug where
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] help: consider using an opaque type instead
[INFO] [stdout]     |
[INFO] [stdout] 872 -   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout] 872 +   fn to_primitive (&self, position : Point3 <S>) -> Box <impl Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/geometry/shape.rs:873:5
[INFO] [stdout]     |
[INFO] [stdout] 872 |   fn to_primitive (&self, position : Point3 <S>) -> Box <dyn Primitive <S, Point3 <S>>> {
[INFO] [stdout]     |                                                     ----------------------------------- expected `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>` because of return type
[INFO] [stdout] 873 |     Box::new (self.plane3 (position))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Primitive<S, Point3<S>>>`, found `Box<Plane3<S>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn geometry::primitive::Primitive<S, types::Point3<S>> + 'static)>`
[INFO] [stdout]                found struct `Box<geometry::primitive::Plane3<S>>`
[INFO] [stdout]     = help: `geometry::primitive::Plane3<S>` implements `Primitive` so you could box the found value and coerce it to the trait object `Box<dyn Primitive>`, you will have to change the expected type as well
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0038, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0038`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `nsys-math-utils` (lib) due to 54 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0038, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0038`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `nsys-math-utils` (lib test) due to 54 previous errors
[INFO] running `Command { std: "docker" "inspect" "4cf1bb76bd7b6b3e9acda850b926f4a58a9061bb412e0fe04794b65c3fb6101f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4cf1bb76bd7b6b3e9acda850b926f4a58a9061bb412e0fe04794b65c3fb6101f", kill_on_drop: false }`
[INFO] [stdout] 4cf1bb76bd7b6b3e9acda850b926f4a58a9061bb412e0fe04794b65c3fb6101f
