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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//! This crate contains all of the blocks available in the Pictorus UI.
//! These blocks are implemented using the traits defined in the `pictorus-traits`
//! crate.
//!
//! ## Block Types
//! There are currently two categories of blocks defined in this crate:
//! - Core Blocks - These are blocks that are available on all platforms.
//! - Standard Blocks - These blocks are only available on platforms that support the standard library.
//!
//! ## Implementing Custom Blocks
//! The blocks in this crate can be helpful as a starting point for implementing a custom block,
//! but are likely to be much more complex than required for a typical use case.
//! The blocks in this crate typically support a wide variety of input/output types,
//! and as such, need to use more complex patterns like macros and recursive traits to cover all possible cases.
//! If you are implementing a custom block for a specific case, you can likely create a much simpler implementation
//! by restricting the input/output types you need to support. We will be adding more examples of simple custom blocks in the future.
use BlockData;
extern crate std;
// TODO: Remoove this when we no longer require alloc
extern crate alloc;
// Set of blocks that do not depend on `std` or `alloc`
pub use *;
// Set of blocks that depend on `std`
pub use *;
pub
pub use Scalar;
/// Error raised when parsing an enum from a string fails.
;
/// Trait for blocks that can have stale/invalid ouput.
///
/// Blocks that implement this trait should output a false value for `is_valid`
/// if the output is not in a valid state.