-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbinary.rs
30 lines (29 loc) · 1.44 KB
/
binary.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//! Provides the generic functionality for a backend-specific implementation of a
//! [library][libraries].
//! [libraries]: ../libraries/index.html
//!
//! A binary defines one or (more often) many operations, which share related functionalities and are
//! provided by a specific [library][libraries] such as [Blas][blas].
//!
//! A binary needs to be 'built', which is handled by the specific framework implementation of a
//! binary representation, and returns initialized operations based on a [library][libraries].
//!
//! You are ususally not interacting with a binary itself, but rather use it to construct the
//! backend-agnostic operations, which can then be run and parallelized via an
//! unified interface - `backend.__name_of_the_operation__`.
//!
//! ## Development
//!
//! The funcionality provided here is used to construct specific Collenchyma binaries, which are
//! used to construct the basic computation behavior that come shipped with Collenchyma. However, it should
//! allow you to define and run your own backend-agnostic programs as well.
//!
//! [blas]: ../libraries/blas/index.html
/// Defines the functionality for turning a library into backend-specific, executable operations.
pub trait IBinary {
// Returns the unique identifier of the Binary.
//fn id(&self) -> isize;
// Creates a HashMap of available, ready-to-use operations, based on the provided library and
// tailored for a framework.
//fn create_operations();
}