mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
## Summary - reduce public module visibility across Rust crates, preferring private or crate-private modules with explicit crate-root public exports - update external call sites and tests to use the intended public crate APIs instead of reaching through module trees - add the module visibility guideline to AGENTS.md ## Validation - `cargo check --workspace --all-targets --message-format=short` passed before the final fix/format pass - `just fix` completed successfully - `just fmt` completed successfully - `git diff --check` passed
51 lines
1.1 KiB
Rust
51 lines
1.1 KiB
Rust
use ratatui::layout::Rect;
|
|
|
|
pub(crate) mod highlight;
|
|
pub(crate) mod line_utils;
|
|
pub(crate) mod renderable;
|
|
|
|
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
|
pub struct Insets {
|
|
left: u16,
|
|
top: u16,
|
|
right: u16,
|
|
bottom: u16,
|
|
}
|
|
|
|
impl Insets {
|
|
pub fn tlbr(top: u16, left: u16, bottom: u16, right: u16) -> Self {
|
|
Self {
|
|
top,
|
|
left,
|
|
bottom,
|
|
right,
|
|
}
|
|
}
|
|
|
|
pub fn vh(v: u16, h: u16) -> Self {
|
|
Self {
|
|
top: v,
|
|
left: h,
|
|
bottom: v,
|
|
right: h,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub trait RectExt {
|
|
fn inset(&self, insets: Insets) -> Rect;
|
|
}
|
|
|
|
impl RectExt for Rect {
|
|
fn inset(&self, insets: Insets) -> Rect {
|
|
let horizontal = insets.left.saturating_add(insets.right);
|
|
let vertical = insets.top.saturating_add(insets.bottom);
|
|
Rect {
|
|
x: self.x.saturating_add(insets.left),
|
|
y: self.y.saturating_add(insets.top),
|
|
width: self.width.saturating_sub(horizontal),
|
|
height: self.height.saturating_sub(vertical),
|
|
}
|
|
}
|
|
}
|