| //! The public parts of this private module are used to create traits | |
| //! that cannot be implemented outside of our own crate. This way we | |
| //! can feel free to extend those traits without worrying about it | |
| //! being a breaking change for other implementations. | |
| /// If this type is pub but not publicly reachable, third parties | |
| /// can't name it and can't implement traits using it. | |
| #[allow(missing_debug_implementations)] | |
| pub struct PrivateMarker; | |
| macro_rules! private_decl { | |
| () => { | |
| /// This trait is private; this method exists to make it | |
| /// impossible to implement outside the crate. | |
| #[doc(hidden)] | |
| fn __rayon_private__(&self) -> crate::private::PrivateMarker; | |
| }; | |
| } | |
| macro_rules! private_impl { | |
| () => { | |
| fn __rayon_private__(&self) -> crate::private::PrivateMarker { | |
| crate::private::PrivateMarker | |
| } | |
| }; | |
| } |