├── .github └── workflows │ └── default.yml ├── .gitignore ├── Cargo.toml ├── LICENSE_APACHE ├── LICENSE_MIT ├── README.md ├── examples ├── Cargo.toml ├── LICENSE_APACHE ├── LICENSE_MIT └── src │ ├── fail_tests │ ├── auto_covariant.rs │ ├── auto_covariant.stderr │ ├── borrow_before_declaration.rs │ ├── borrow_before_declaration.stderr │ ├── borrowchk_custom_drop.rs │ ├── borrowchk_custom_drop.stderr │ ├── borrowchk_external_lifetime.rs │ ├── borrowchk_external_lifetime.stderr │ ├── double_mutable_borrow.rs │ ├── double_mutable_borrow.stderr │ ├── move_ref_outside_closure.rs │ ├── move_ref_outside_closure.stderr │ ├── refuse_non_std_box.rs │ ├── refuse_non_std_box.stderr │ ├── swap_refs_for_use_after_free.rs │ ├── swap_refs_for_use_after_free.stderr │ ├── use_after_free.rs │ ├── use_after_free.stderr │ ├── use_moved_ref_after_free.rs │ └── use_moved_ref_after_free.stderr │ ├── lib.rs │ └── ok_tests.rs ├── ouroboros ├── Cargo.toml ├── LICENSE_APACHE ├── LICENSE_MIT └── src │ └── lib.rs ├── ouroboros_macro ├── Cargo.toml ├── LICENSE_APACHE ├── LICENSE_MIT └── src │ ├── covariance_detection.rs │ ├── generate │ ├── constructor.rs │ ├── derives.rs │ ├── drop.rs │ ├── into_heads.rs │ ├── mod.rs │ ├── struc.rs │ ├── summon_checker.rs │ ├── try_constructor.rs │ ├── type_asserts.rs │ ├── with.rs │ ├── with_each.rs │ └── with_mut.rs │ ├── info_structures.rs │ ├── lib.rs │ ├── parse.rs │ └── utils.rs └── publish.sh /.github/workflows/default.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/.github/workflows/default.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | Cargo.lock 3 | scratch 4 | .DS_Store -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE_APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/LICENSE_APACHE -------------------------------------------------------------------------------- /LICENSE_MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/LICENSE_MIT -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/README.md -------------------------------------------------------------------------------- /examples/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/Cargo.toml -------------------------------------------------------------------------------- /examples/LICENSE_APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/LICENSE_APACHE -------------------------------------------------------------------------------- /examples/LICENSE_MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/LICENSE_MIT -------------------------------------------------------------------------------- /examples/src/fail_tests/auto_covariant.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/auto_covariant.rs -------------------------------------------------------------------------------- /examples/src/fail_tests/auto_covariant.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/auto_covariant.stderr -------------------------------------------------------------------------------- /examples/src/fail_tests/borrow_before_declaration.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/borrow_before_declaration.rs -------------------------------------------------------------------------------- /examples/src/fail_tests/borrow_before_declaration.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/borrow_before_declaration.stderr -------------------------------------------------------------------------------- /examples/src/fail_tests/borrowchk_custom_drop.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/borrowchk_custom_drop.rs -------------------------------------------------------------------------------- /examples/src/fail_tests/borrowchk_custom_drop.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/borrowchk_custom_drop.stderr -------------------------------------------------------------------------------- /examples/src/fail_tests/borrowchk_external_lifetime.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/borrowchk_external_lifetime.rs -------------------------------------------------------------------------------- /examples/src/fail_tests/borrowchk_external_lifetime.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/borrowchk_external_lifetime.stderr -------------------------------------------------------------------------------- /examples/src/fail_tests/double_mutable_borrow.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/double_mutable_borrow.rs -------------------------------------------------------------------------------- /examples/src/fail_tests/double_mutable_borrow.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/double_mutable_borrow.stderr -------------------------------------------------------------------------------- /examples/src/fail_tests/move_ref_outside_closure.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/move_ref_outside_closure.rs -------------------------------------------------------------------------------- /examples/src/fail_tests/move_ref_outside_closure.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/move_ref_outside_closure.stderr -------------------------------------------------------------------------------- /examples/src/fail_tests/refuse_non_std_box.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/refuse_non_std_box.rs -------------------------------------------------------------------------------- /examples/src/fail_tests/refuse_non_std_box.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/refuse_non_std_box.stderr -------------------------------------------------------------------------------- /examples/src/fail_tests/swap_refs_for_use_after_free.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/swap_refs_for_use_after_free.rs -------------------------------------------------------------------------------- /examples/src/fail_tests/swap_refs_for_use_after_free.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/swap_refs_for_use_after_free.stderr -------------------------------------------------------------------------------- /examples/src/fail_tests/use_after_free.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/use_after_free.rs -------------------------------------------------------------------------------- /examples/src/fail_tests/use_after_free.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/use_after_free.stderr -------------------------------------------------------------------------------- /examples/src/fail_tests/use_moved_ref_after_free.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/use_moved_ref_after_free.rs -------------------------------------------------------------------------------- /examples/src/fail_tests/use_moved_ref_after_free.stderr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/fail_tests/use_moved_ref_after_free.stderr -------------------------------------------------------------------------------- /examples/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/lib.rs -------------------------------------------------------------------------------- /examples/src/ok_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/examples/src/ok_tests.rs -------------------------------------------------------------------------------- /ouroboros/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros/Cargo.toml -------------------------------------------------------------------------------- /ouroboros/LICENSE_APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros/LICENSE_APACHE -------------------------------------------------------------------------------- /ouroboros/LICENSE_MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros/LICENSE_MIT -------------------------------------------------------------------------------- /ouroboros/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros/src/lib.rs -------------------------------------------------------------------------------- /ouroboros_macro/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/Cargo.toml -------------------------------------------------------------------------------- /ouroboros_macro/LICENSE_APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/LICENSE_APACHE -------------------------------------------------------------------------------- /ouroboros_macro/LICENSE_MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/LICENSE_MIT -------------------------------------------------------------------------------- /ouroboros_macro/src/covariance_detection.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/covariance_detection.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/generate/constructor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/generate/constructor.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/generate/derives.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/generate/derives.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/generate/drop.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/generate/drop.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/generate/into_heads.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/generate/into_heads.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/generate/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/generate/mod.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/generate/struc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/generate/struc.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/generate/summon_checker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/generate/summon_checker.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/generate/try_constructor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/generate/try_constructor.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/generate/type_asserts.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/generate/type_asserts.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/generate/with.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/generate/with.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/generate/with_each.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/generate/with_each.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/generate/with_mut.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/generate/with_mut.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/info_structures.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/info_structures.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/lib.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/parse.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/parse.rs -------------------------------------------------------------------------------- /ouroboros_macro/src/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/ouroboros_macro/src/utils.rs -------------------------------------------------------------------------------- /publish.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/someguynamedjosh/ouroboros/HEAD/publish.sh --------------------------------------------------------------------------------