Struct cursive_hexview::HexView [−][src]
Hexadecimal viewer.
This is a classic hexview which can be used to view and manipulate data which resides inside
this struct. There are severeal states in which the view can be operatered, see DisplayState.
You should consider the corresponding method docs for each state.
Examples
extern crate cursive; extern crate cursive_hexview; use cursive_hexview::{DisplayState,HexView}; fn main() { let view = HexView::new().display_state(DisplayState::Editable); let mut cur = cursive::dummy(); cur.add_layer(cursive::views::Dialog::around(view).title("HexView")); // cur.run(); }
Implementations
impl HexView[src]
pub fn new() -> Self[src]
Creates a new, default HexView with an empty databuffer and disabled state.
Examples
let view = HexView::new();
pub fn new_from_iter<B: Borrow<u8>, I: IntoIterator<Item = B>>(data: I) -> Self[src]
Crates a new HexView with the given data and disabled state.
Examples
With data from a Vec:
let view = HexView::new_from_iter(vec![3, 6, 1, 8, 250]);
With data from a byte string literal:
let view = HexView::new_from_iter(b"Hello, World!");
Or with a slice
let view = HexView::new_from_iter(&[5, 6, 2, 89]);
pub fn set_config(&mut self, config: HexViewConfig)[src]
This function allows the customization of the HexView output.
For options and explanation of every possible option, see the HexViewConfig struct.
#Examples
let mut view = HexView::new(); view.set_config(HexViewConfig { bytes_per_line: 8, ..Default::default() });
pub fn config(self, config: HexViewConfig) -> Self[src]
pub fn data(&self) -> &Vec<u8>[src]
Returns a reference to the internal data.
Examples
let data = vec![3, 4, 9, 1]; let view = HexView::new_from_iter(data.clone()); assert_eq!(view.data(), &data);
pub fn set_data<B: Borrow<u8>, I: IntoIterator<Item = B>>(&mut self, data: I)[src]
Sets the data during the lifetime of this instance.
For insance to update the data due to an external event.
let mut view = cursive_hexview::HexView::new(); view.set_data(b"Hello, World!".to_owned().iter());
pub fn display_state(self, state: DisplayState) -> Self[src]
pub fn set_display_state(&mut self, state: DisplayState)[src]
Sets the state of the view to one of the variants from DisplayState.
This will alter the behavior of the view accrodingly to the set state.
If the state is set to Disabled this view can neither be focused nor edited. If the state
is set to Enabled it can be focused and the cursor can be moved around, but no data can
be altered. If set to Editable this view behaves like Enabled but the data can be altered.
Note
This has nothing to do with rusts type system, which means even when this instance is set to
Disabled you still can alter the data through set_data but you cannot
alter it with the keyboard commands (+, -, #hexvalue).
Examples
let view = HexView::new().display_state(DisplayState::Editable);
pub fn len(&self) -> usize[src]
Returns the length of the data.
Examples
let view = HexView::new_from_iter(vec![0, 1, 2, 3]); assert_eq!(4, view.len());
pub fn is_empty(&self) -> bool[src]
Checks whether the data is empty.
Examples
let view = HexView::new(); assert!(view.is_empty());
let view = HexView::new_from_iter(b"ABC"); assert!(!view.is_empty());
pub fn set_len(&mut self, length: usize)[src]
Sets the length of the data which this view displays.
If the new length is greater than the current one, 0's will be appended to the data. If the new length is less than the current one, the data will be truncated and is lost.
Examples
let mut view = HexView::new(); view.set_len(3); assert_eq!(view.len(), 3); assert_eq!(view.data(), &vec![0u8, 0u8, 0u8]);
Trait Implementations
impl Default for HexView[src]
fn default() -> Self[src]
Creates a new, default HexView with an empty databuffer and disabled state.
impl View for HexView[src]
fn on_event(&mut self, event: Event) -> EventResult[src]
fn required_size(&mut self, _: Vec2) -> Vec2[src]
fn draw(&self, printer: &Printer<'_, '_>)[src]
fn take_focus(&mut self, _: Direction) -> bool[src]
pub fn layout(&mut self, XY<usize>)
pub fn needs_relayout(&self) -> bool
pub fn call_on_any(
&mut self,
&Selector<'_>,
&'a mut (dyn FnMut(&mut (dyn View + 'static)) + 'a)
)
&mut self,
&Selector<'_>,
&'a mut (dyn FnMut(&mut (dyn View + 'static)) + 'a)
)
pub fn focus_view(&mut self, &Selector<'_>) -> Result<(), ViewNotFound>
pub fn important_area(&self, view_size: XY<usize>) -> Rect
pub fn type_name(&self) -> &'static str
Auto Trait Implementations
impl RefUnwindSafe for HexView[src]
impl Send for HexView[src]
impl Sync for HexView[src]
impl Unpin for HexView[src]
impl UnwindSafe for HexView[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> AnyView for T where
T: View,
T: View,
pub fn as_any(&self) -> &(dyn Any + 'static)
Downcast self to a Any.
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Downcast self to a mutable Any.
pub fn as_boxed_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> Erased for T
impl<T> Finder for T where
T: View,
T: View,
pub fn call_on_all<V, F>(&mut self, sel: &Selector<'_>, callback: F) where
V: View,
F: FnMut(&mut V),
V: View,
F: FnMut(&mut V),
pub fn call_on<V, F, R>(&mut self, sel: &Selector<'_>, callback: F) -> Option<R> where
V: View,
F: FnOnce(&mut V) -> R,
V: View,
F: FnOnce(&mut V) -> R,
pub fn call_on_name<V, F, R>(&mut self, name: &str, callback: F) -> Option<R> where
V: View,
F: FnOnce(&mut V) -> R,
V: View,
F: FnOnce(&mut V) -> R,
pub fn call_on_id<V, F, R>(&mut self, id: &str, callback: F) -> Option<R> where
V: View,
F: FnOnce(&mut V) -> R,
V: View,
F: FnOnce(&mut V) -> R,
pub fn find_name<V>(
&mut self,
name: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View,
&mut self,
name: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View,
pub fn find_id<V>(
&mut self,
id: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View,
&mut self,
id: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View,
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> IntoBoxedView for T where
T: View,
T: View,
pub fn into_boxed_view(self) -> Box<dyn View + 'static, Global>
impl<T> Nameable for T where
T: View,
T: View,
pub fn with_name<S>(self, name: S) -> NamedView<Self> where
S: Into<String>,
S: Into<String>,
pub fn with_id<S>(self, id: S) -> NamedView<Self> where
S: Into<String>,
S: Into<String>,
impl<T> Resizable for T where
T: View,
T: View,
pub fn boxed(
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
pub fn resized(
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
pub fn fixed_size<S>(self, size: S) -> ResizedView<Self> where
S: Into<XY<usize>>,
S: Into<XY<usize>>,
pub fn fixed_width(self, width: usize) -> ResizedView<Self>
pub fn fixed_height(self, height: usize) -> ResizedView<Self>
pub fn full_screen(self) -> ResizedView<Self>
pub fn full_width(self) -> ResizedView<Self>
pub fn full_height(self) -> ResizedView<Self>
pub fn max_size<S>(self, size: S) -> ResizedView<Self> where
S: Into<XY<usize>>,
S: Into<XY<usize>>,
pub fn max_width(self, max_width: usize) -> ResizedView<Self>
pub fn max_height(self, max_height: usize) -> ResizedView<Self>
pub fn min_size<S>(self, size: S) -> ResizedView<Self> where
S: Into<XY<usize>>,
S: Into<XY<usize>>,
pub fn min_width(self, min_width: usize) -> ResizedView<Self>
pub fn min_height(self, min_height: usize) -> ResizedView<Self>
impl<T> Scrollable for T where
T: View,
T: View,
pub fn scrollable(self) -> ScrollView<Self>
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<T> With for T
pub fn wrap_with<U, F>(self, f: F) -> U where
F: FnOnce(Self) -> U,
F: FnOnce(Self) -> U,
pub fn with<F>(self, f: F) -> Self where
F: FnOnce(&mut Self),
F: FnOnce(&mut Self),
pub fn try_with<E, F>(self, f: F) -> Result<Self, E> where
F: FnOnce(&mut Self) -> Result<(), E>,
F: FnOnce(&mut Self) -> Result<(), E>,
pub fn with_if<F>(self, condition: bool, f: F) -> Self where
F: FnOnce(&mut Self),
F: FnOnce(&mut Self),