Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs55
1 files changed, 11 insertions, 44 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 18cf980..06ebfbc 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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,