#[macro_use] pub mod macros; pub mod clipboard; pub mod document; pub mod editor; pub mod graphics; pub mod gutter; pub mod info; pub mod input; pub mod keyboard; pub mod theme; pub mod tree; pub mod view; use std::num::NonZeroUsize; // uses NonZeroUsize so Option use a byte rather than two #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)] pub struct DocumentId(NonZeroUsize); impl Default for DocumentId { fn default() -> DocumentId { // Safety: 1 is non-zero DocumentId(unsafe { NonZeroUsize::new_unchecked(1) }) } } slotmap::new_key_type! { pub struct ViewId; } pub use document::Document; pub use editor::Editor; pub use theme::Theme; pub use view::View;