Struct cursive_hexview::HexView[][src]

pub struct HexView { /* fields omitted */ }

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]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> AnyView for T where
    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.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Erased for T

impl<T> Finder for T where
    T: View, 

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IntoBoxedView for T where
    T: View, 

impl<T> Nameable for T where
    T: View, 

impl<T> Resizable for T where
    T: View, 

impl<T> Scrollable for T where
    T: View, 

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> With for T