mirror of
https://github.com/FliegendeWurst/cursive.git
synced 2024-11-23 17:35:00 +00:00
Don't expose single-item modules
Instead, pub-use it from the root.
This commit is contained in:
parent
d9e4512752
commit
7f17a4ff74
19
src/lib.rs
19
src/lib.rs
@ -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};
|
||||||
|
|
||||||
|
24
src/vec.rs
24
src/vec.rs
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user