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
//! # Types module
//!
//! This just reexports the struct and traits for easier importing.
//!
//! ## Note
//!
//! This file only contains the definitions for items, for actual implementations,
//! check the files under `src/impl`. Each type will have it's implementation in
//! the same place, ex. types in `types/value/function.rs` will have
//! their implementations in `impl/value/function.rs`. The only `impl`
//! here is for `Statement`, and it isn't exposed directly to consumers of this
//! crate, but rather through other functions.
use Rc as PointerInner;
use Arc as PointerInner;
/// A helper macro to reexport modules.
reexport!;
/// The main pointer used in the [`Cst`]. It's just [`Rc`](std::rc::Rc)
/// (or [`Arc`](std::sync::Arc) if "async" feature is enabled).
///
/// The only reason this type exists is to allow easily switching to other pointer
/// types, by only editing one line instead of mass refactoring, and without
/// breaking crates that use it.
pub type Pointer<T> = ;
/// An enum representing printing errors that stopped [`Cst::try_print`] from working.