pub struct FoldRegion {
pub id: FoldRegionId,
pub start_line: usize,
pub end_line: usize,
pub collapsed: bool,
}Expand description
Collapsible range of zero-based logical lines.
The line at FoldRegion::start_line remains visible when the region is
collapsed; lines through FoldRegion::end_line are hidden. Callers are
responsible for constructing ranges whose end is not before their start.
§Examples
use ailloli_ui_editor::FoldRegion;
let region = FoldRegion::new(3, 6).collapsed(true);
assert!(!region.hides_line(3));
assert!(region.hides_line(4));
assert!(region.hides_line(6));Fields§
§id: FoldRegionIdStable identifier derived from the start and end lines.
start_line: usizeZero-based header line that remains visible while collapsed.
end_line: usizeZero-based inclusive last line hidden while collapsed.
collapsed: boolWhether the region currently hides its body lines.
Implementations§
Source§impl FoldRegion
Constructs and queries fold regions.
impl FoldRegion
Constructs and queries fold regions.
Sourcepub fn new(start_line: usize, end_line: usize) -> Self
pub fn new(start_line: usize, end_line: usize) -> Self
Creates an expanded region spanning start_line..=end_line.
The inputs are stored without ordering validation. Consequently, a reversed range hides no lines and reports a hidden count of zero.
§Examples
use ailloli_ui_editor::FoldRegion;
let region = FoldRegion::new(4, 7);
assert_eq!((region.start_line, region.end_line), (4, 7));
assert!(!region.collapsed);Sourcepub fn collapsed(self, collapsed: bool) -> Self
pub fn collapsed(self, collapsed: bool) -> Self
Sets whether the region is collapsed and returns it.
§Examples
use ailloli_ui_editor::FoldRegion;
assert!(FoldRegion::new(0, 2).collapsed(true).collapsed);Sourcepub fn hides_line(self, line: usize) -> bool
pub fn hides_line(self, line: usize) -> bool
Returns whether a zero-based line is hidden by this region.
The header line is never hidden and the end line is inclusive.
§Examples
use ailloli_ui_editor::FoldRegion;
let region = FoldRegion::new(5, 6).collapsed(true);
assert_eq!((region.hides_line(5), region.hides_line(6)), (false, true));Returns the number of body lines in the range, whether expanded or not.
Reversed ranges return zero rather than underflowing.
§Examples
use ailloli_ui_editor::FoldRegion;
assert_eq!(FoldRegion::new(2, 5).hidden_line_count(), 3);
assert_eq!(FoldRegion::new(5, 2).hidden_line_count(), 0);Trait Implementations§
Source§impl Clone for FoldRegion
impl Clone for FoldRegion
Source§fn clone(&self) -> FoldRegion
fn clone(&self) -> FoldRegion
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FoldRegion
impl Debug for FoldRegion
Source§impl<'de> Deserialize<'de> for FoldRegion
impl<'de> Deserialize<'de> for FoldRegion
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Hash for FoldRegion
impl Hash for FoldRegion
Source§impl PartialEq for FoldRegion
impl PartialEq for FoldRegion
Source§impl Serialize for FoldRegion
impl Serialize for FoldRegion
impl Copy for FoldRegion
impl Eq for FoldRegion
impl StructuralPartialEq for FoldRegion
Auto Trait Implementations§
impl Freeze for FoldRegion
impl RefUnwindSafe for FoldRegion
impl Send for FoldRegion
impl Sync for FoldRegion
impl Unpin for FoldRegion
impl UnwindSafe for FoldRegion
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.