1#![allow(clippy::len_zero)]
2#![allow(clippy::missing_safety_doc)]
3#![allow(clippy::redundant_closure_call)]
4extern crate bit_set;
49#[macro_use]
50extern crate derive_new;
51#[macro_use]
52pub extern crate downcast_rs;
53#[allow(unused_imports)]
54#[macro_use]
55extern crate log;
56#[allow(unused_imports)]
57#[macro_use]
58pub extern crate ndarray;
59#[cfg(test)]
60extern crate env_logger;
61pub extern crate num_traits;
62#[cfg(test)]
63extern crate proptest;
64
65pub extern crate tract_data;
66pub extern crate tract_linalg;
67
68pub use tract_data::declare_knob;
69pub use tract_data::knobs;
70
71#[macro_use]
72pub mod macros;
73#[macro_use]
74pub mod ops;
75
76pub mod axes;
77pub mod batchify;
78pub mod broadcast;
79#[cfg(feature = "deploy")]
80pub mod deploy;
81pub mod floats;
82pub mod framework;
83pub mod lanes;
84pub mod model;
85pub mod optim;
86pub mod plan;
87pub mod unbatched;
88#[macro_use]
89pub mod runtime;
90#[macro_use]
91pub mod transform;
92pub mod value;
93
94pub use dyn_clone;
95
96mod late_bind;
97
98pub mod prelude {
100 pub use crate::framework::Framework;
101 pub use crate::model::*;
102 pub use crate::runtime::{RunOptions, Runnable, Runtime, State, runtime_for_name, runtimes};
103 pub use crate::value::{IntoTValue, TValue};
104 pub use std::sync::Arc;
105 pub use tract_data::prelude::*;
106
107 pub use ndarray as tract_ndarray;
108 pub use num_traits as tract_num_traits;
109 pub use tract_data;
110 pub use tract_linalg;
111 pub use tract_linalg::multithread;
112}
113
114pub mod internal {
116 pub extern crate inventory;
117 pub use crate::axes::{AxesMapping, Axis};
118 pub use crate::lanes::{LaneTable, LanedRunnable, LanedStateHandle};
119 pub use crate::late_bind::*;
120 pub use crate::ops::change_axes::*;
121 pub use crate::ops::element_wise::ElementWiseMiniOp;
122 pub use crate::ops::{Cost, EvalOp, Op, OpState, Validation};
123 pub use crate::plan::{
124 EvalContext, LaneId, Seating, SessionId, SimplePlan, SimpleState, TurnShared, TurnState,
125 TurnStateHandler,
126 };
127 pub use crate::prelude::*;
128 pub use crate::runtime::{
129 DefaultRuntime, Runnable, Runtime, State, runtime_for_name, runtimes,
130 };
131 pub use dims;
132 pub use downcast_rs as tract_downcast_rs;
133 pub use register_model_transform;
134 pub use register_runtime;
135 pub use register_simple_model_transform;
136 pub use std::borrow::Cow;
137 pub use std::collections::HashMap;
138 pub use std::hash::Hash;
139 pub use std::marker::PhantomData;
140 pub use tract_data::internal::*;
141 pub use tract_data::{
142 dispatch_copy, dispatch_datum, dispatch_datum_by_size, dispatch_floatlike, dispatch_numbers,
143 };
144 pub use tvec;
145 pub use {args_1, args_2, args_3, args_4, args_5, args_6, args_7, args_8};
146 pub use {as_op, not_a_typed_op, not_out_of_plan, op_as_typed_op, op_out_of_plan};
147 pub use {bin_to_super_type, element_wise, element_wise_oop};
148 pub use {rule_if, rule_if_let, rule_if_some};
149}
150
151#[cfg(test)]
152#[allow(dead_code)]
153fn setup_test_logger() {
154 let _ = env_logger::Builder::from_env("TRACT_LOG").try_init();
155}