Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 55 |
1 files changed, 11 insertions, 44 deletions
@@ -9,59 +9,24 @@ extern crate alloc; pub mod any; -mod build; +pub mod build; mod doc_macro; -// pub mod effect; pub mod hkt; pub mod macros; +pub mod mode; pub mod protocol; pub mod symbol; -mod transform; -mod walk; +pub mod transform; +pub mod walk; use core::ops::ControlFlow; -pub use build::*; use effectful::{short::ConvertShort, SendSync}; -// use effect::ConvertShort; -pub use transform::*; -pub use walk::*; -use symbol::Symbol; - -pub mod never { - use effectful::SendSync; - - mod sealed { - pub trait Extract { - type Never; - } - - impl<T> Extract for fn() -> T { - type Never = T; - } - } - - /// Test - // pub type Never = <fn() -> ! as sealed::Extract>::Never; - #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, SendSync)] - pub enum Never {} -} - -pub const TAG_TYPE_NAME: Symbol = Symbol::new("Type Name"); -pub const TAG_TYPE_ID: Symbol = Symbol::new("Type ID"); -pub const TAG_TYPE_SIZE: Symbol = Symbol::new("Type Size"); -pub const TAG_FIELD_NAMES: Symbol = Symbol::new("Field Names"); -pub const TAG_KEY: Symbol = Symbol::new("Key"); -pub const TAG_VALUE: Symbol = Symbol::new("Value"); -pub const TAG_SEQ_INDEX: Symbol = Symbol::new("Seq Index"); -pub const TAG_SEQ_LEN: Symbol = Symbol::new("Seq Length"); -pub const TAG_STRUCT: Symbol = Symbol::new("Struct"); -pub const TAG_MAP: Symbol = Symbol::new("Map"); -pub const TAG_SEQ: Symbol = Symbol::new("Sequence"); -pub const TAG_FIELD: Symbol = Symbol::new("Field"); -pub const TAG_KEY_VALUE: Symbol = Symbol::new("Key Value"); -pub const TAG_ENUM: Symbol = Symbol::new("Enum"); +#[doc(inline)] +pub use build::{Build, Builder}; +#[doc(inline)] +pub use walk::{Walk, Walker}; pub enum DefaultMode {} @@ -82,7 +47,9 @@ pub enum Flow { Done, } -impl ConvertShort<Flow> for Option<effectful::Never> { +type Never = std::convert::Infallible; + +impl ConvertShort<Flow> for Option<Never> { fn convert_short(short: Self) -> Flow { match short { None => Flow::Done, |