Don't expose single-item modules

Instead, pub-use it from the root.
This commit is contained in:
Alexandre Bury 2016-07-13 23:18:59 -07:00
parent d9e4512752
commit 7f17a4ff74
2 changed files with 30 additions and 13 deletions

View File

@ -1,8 +1,18 @@
//! # Cursive //! # Cursive
//! //!
//! Cursive is a TUI library built on top of ncurses-rs. //! [Cursive](https://github.com/gyscos/Cursive) is a TUI library built on top
//! of ncurses-rs.
//! It allows to easily build layouts for text-based applications. //! It allows to easily build layouts for text-based applications.
//! //!
//! ## Getting started
//!
//! * Every application should start with a [`Cursive`](struct.Cursive.html)
//! object. It is the main entry-point to the library.
//! * A declarative phase then describes the structure of the UI by adding
//! views and configuring their behaviours.
//! * Finally, the event loop is started by calling
//! [`Cursive::run(&mut self)`](struct.Cursive.html#method.run).
//!
//! ## Example //! ## Example
//! ```no_run //! ```no_run
//! extern crate cursive; //! extern crate cursive;
@ -38,16 +48,16 @@ macro_rules! println_stderr(
pub mod event; pub mod event;
pub mod view; pub mod view;
pub mod printer;
pub mod vec; pub mod vec;
pub mod theme; pub mod theme;
pub mod align; pub mod align;
pub mod orientation;
pub mod menu; pub mod menu;
// This probably doesn't need to be public? // This probably doesn't need to be public?
mod printer;
mod menubar; mod menubar;
mod xy; mod xy;
mod orientation;
mod div; mod div;
mod utf8; mod utf8;
@ -55,6 +65,8 @@ mod utf8;
mod backend; mod backend;
pub use xy::XY; pub use xy::XY;
pub use orientation::Orientation;
pub use printer::Printer;
use backend::{Backend, NcursesBackend}; use backend::{Backend, NcursesBackend};
@ -64,7 +76,6 @@ use std::collections::HashMap;
use std::path::Path; use std::path::Path;
use vec::Vec2; use vec::Vec2;
use printer::Printer;
use view::View; use view::View;
use view::{Selector, StackView}; use view::{Selector, StackView};

View File

@ -5,10 +5,16 @@ use orientation::Orientation;
use std::ops::{Add, Div, Mul, Sub}; use std::ops::{Add, Div, Mul, Sub};
use std::cmp::{Ordering, max, min}; use std::cmp::{Ordering, max, min};
/// Simple 2D size, in characters. /// Simple 2D size, in cells.
///
/// Note: due to a bug in rustdoc ([#32077]), the documentation for `Vec2` is
/// currently shown on the [`XY`] page.
///
/// [#32077]: https://github.com/rust-lang/rust/issues/32077
/// [`XY`]: ../struct.XY.html
pub type Vec2 = XY<usize>; pub type Vec2 = XY<usize>;
impl PartialOrd for Vec2 { impl PartialOrd for XY<usize> {
/// `a < b` <=> `a.x < b.x && a.y < b.y` /// `a < b` <=> `a.x < b.x && a.y < b.y`
fn partial_cmp(&self, other: &Vec2) -> Option<Ordering> { fn partial_cmp(&self, other: &Vec2) -> Option<Ordering> {
if self == other { if self == other {
@ -23,7 +29,7 @@ impl PartialOrd for Vec2 {
} }
} }
impl Vec2 { impl XY<usize> {
/// Returns a new Vec2 that is a maximum per coordinate. /// Returns a new Vec2 that is a maximum per coordinate.
pub fn max<A: Into<Vec2>, B: Into<Vec2>>(a: A, b: B) -> Self { pub fn max<A: Into<Vec2>, B: Into<Vec2>>(a: A, b: B) -> Self {
let a = a.into(); let a = a.into();
@ -89,20 +95,20 @@ impl Vec2 {
} }
} }
impl From<(i32, i32)> for Vec2 { impl From<(i32, i32)> for XY<usize> {
fn from((x, y): (i32, i32)) -> Self { fn from((x, y): (i32, i32)) -> Self {
(x as usize, y as usize).into() (x as usize, y as usize).into()
} }
} }
impl From<(u32, u32)> for Vec2 { impl From<(u32, u32)> for XY<usize> {
fn from((x, y): (u32, u32)) -> Self { fn from((x, y): (u32, u32)) -> Self {
(x as usize, y as usize).into() (x as usize, y as usize).into()
} }
} }
impl<T: Into<Vec2>> Add<T> for Vec2 { impl<T: Into<Vec2>> Add<T> for XY<usize> {
type Output = Vec2; type Output = Vec2;
fn add(self, other: T) -> Vec2 { fn add(self, other: T) -> Vec2 {
@ -110,7 +116,7 @@ impl<T: Into<Vec2>> Add<T> for Vec2 {
} }
} }
impl<T: Into<Vec2>> Sub<T> for Vec2 { impl<T: Into<Vec2>> Sub<T> for XY<usize> {
type Output = Vec2; type Output = Vec2;
fn sub(self, other: T) -> Vec2 { fn sub(self, other: T) -> Vec2 {
@ -118,7 +124,7 @@ impl<T: Into<Vec2>> Sub<T> for Vec2 {
} }
} }
impl Div<usize> for Vec2 { impl Div<usize> for XY<usize> {
type Output = Vec2; type Output = Vec2;
fn div(self, other: usize) -> Vec2 { fn div(self, other: usize) -> Vec2 {
@ -126,7 +132,7 @@ impl Div<usize> for Vec2 {
} }
} }
impl Mul<usize> for Vec2 { impl Mul<usize> for XY<usize> {
type Output = Vec2; type Output = Vec2;
fn mul(self, other: usize) -> Vec2 { fn mul(self, other: usize) -> Vec2 {