diff --git a/README.md b/README.md index 09de314f..6ef65a4a 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ to your Cargo manifest. ```rust extern crate collenchyma as co; extern crate collenchyma_nn as nn; -use co::*; +use co::prelude::*; use nn::*; fn write_to_memory(mem: &mut MemoryType, data: &[T]) { diff --git a/src/lib.rs b/src/lib.rs index 4be8aec5..5e0f52d3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -74,7 +74,7 @@ //! ```ignore //! extern crate collenchyma as co; //! extern crate collenchyma_nn as nn; -//! use co::*; +//! use co::prelude::*; //! use nn::*; //! //! fn write_to_memory(mem: &mut MemoryType, data: &[T]) { @@ -171,6 +171,7 @@ pub mod binary; pub mod error; pub mod plugin; +// These will be exported with the prelude. pub use backend::*; pub use device::{IDevice, DeviceType}; pub use hardware::{IHardware, HardwareType}; @@ -183,3 +184,34 @@ pub use frameworks::Native; pub use frameworks::Cuda; #[cfg(feature = "opencl")] pub use frameworks::OpenCL; + +// These should only be imported with caution, since they are likely +// to create a namespace collision. +pub use error::Error; + +/// A module meant to be glob imported when using Collenchyma. +/// +/// For instance: +/// +/// ``` +/// use collenchyma::prelude::*; +/// ``` +/// +/// This module contains several important traits that provide many +/// of the convenience methods in Collenchyma, as well as most important types. +/// Another type that is often needed but is likely to cause a name collision +/// when imported is `collenchyma::Error`. +pub mod prelude { + pub use backend::*; + pub use device::{IDevice, DeviceType}; + pub use hardware::{IHardware, HardwareType}; + pub use framework::IFramework; + pub use memory::{IMemory, MemoryType}; + pub use tensor::{SharedTensor, TensorDesc, ITensorDesc, IntoTensorDesc}; + #[cfg(feature = "native")] + pub use frameworks::Native; + #[cfg(feature = "cuda")] + pub use frameworks::Cuda; + #[cfg(feature = "opencl")] + pub use frameworks::OpenCL; +} diff --git a/tests/backend_specs.rs b/tests/backend_specs.rs index 036620bb..c60686f0 100644 --- a/tests/backend_specs.rs +++ b/tests/backend_specs.rs @@ -6,7 +6,7 @@ mod backend_spec { #[cfg(feature = "native")] mod native { use std::rc::Rc; - use co::*; + use co::prelude::*; #[test] fn it_can_create_default_backend() { diff --git a/tests/framework_cuda_specs.rs b/tests/framework_cuda_specs.rs index cac2ebce..0c853dcb 100644 --- a/tests/framework_cuda_specs.rs +++ b/tests/framework_cuda_specs.rs @@ -4,7 +4,7 @@ extern crate libc; #[cfg(test)] #[cfg(feature = "cuda")] mod framework_cuda_spec { - use co::*; + use co::prelude::*; use co::frameworks::cuda::memory::*; #[test] diff --git a/tests/framework_native_specs.rs b/tests/framework_native_specs.rs index 3ef54812..a89d0aa5 100644 --- a/tests/framework_native_specs.rs +++ b/tests/framework_native_specs.rs @@ -3,7 +3,7 @@ extern crate collenchyma as co; #[cfg(test)] #[cfg(feature = "native")] mod framework_native_spec { - use co::*; + use co::prelude::*; #[test] fn it_works() { diff --git a/tests/framework_opencl_specs.rs b/tests/framework_opencl_specs.rs index 990a92af..4c6b2286 100644 --- a/tests/framework_opencl_specs.rs +++ b/tests/framework_opencl_specs.rs @@ -4,7 +4,7 @@ extern crate libc; #[cfg(test)] #[cfg(feature = "opencl")] mod framework_opencl_spec { - use co::*; + use co::prelude::*; use co::frameworks::opencl::memory::*; use co::frameworks::opencl::queue::*; diff --git a/tests/hardware_specs.rs b/tests/hardware_specs.rs index ec34d706..97e2199b 100644 --- a/tests/hardware_specs.rs +++ b/tests/hardware_specs.rs @@ -4,7 +4,7 @@ extern crate libc; #[cfg(test)] #[cfg(feature = "opencl")] mod hardware_spec { - use co::*; + use co::prelude::*; use co::frameworks::opencl::Device; #[test] diff --git a/tests/shared_memory_specs.rs b/tests/shared_memory_specs.rs index 1fa280e7..56ada6a9 100644 --- a/tests/shared_memory_specs.rs +++ b/tests/shared_memory_specs.rs @@ -3,7 +3,7 @@ extern crate libc; #[cfg(test)] mod shared_memory_spec { - use co::*; + use co::prelude::*; fn write_to_memory(mem: &mut MemoryType, data: &[T]) { match mem { diff --git a/tests/tensor_specs.rs b/tests/tensor_specs.rs index 8833aaff..6099f143 100644 --- a/tests/tensor_specs.rs +++ b/tests/tensor_specs.rs @@ -2,7 +2,7 @@ extern crate collenchyma as co; #[cfg(test)] mod tensor_spec { - use co::*; + use co::prelude::*; #[test] fn it_returns_correct_tensor_desc_stride() {