Struct cursive_hexview::HexView [] [src]

pub struct HexView { /* fields omitted */ }

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::Cursive::new();

    cur.add_layer(cursive::views::Dialog::around(view).title("HexView"));

    // cur.run();
}

Methods

impl HexView
[src]

[src]

Creates a new, default HexView with an empty databuffer and disabled state.

Examples

let view = HexView::new();

[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]);

[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);

[src]

This methods lets set you data during the lifetime of this instance (e.g. the data has been updated due to an external event).

let mut view = cursive_hexview::HexView::new();
view.set_data(b"Hello, World!".to_owned().iter());

[src]

[src]

Sets the state of the view to one of the variants from DisplayState. This will alter the behavoir 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);

[src]

Returns the length of the data.

Examples

let view = HexView::new_from_iter(vec![0, 1, 2, 3]);
assert_eq!(4, view.len());

[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());

[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]

[src]

Creates a new, default HexView with an empty databuffer and disabled state.

impl View for HexView
[src]

[src]

Called when a key was pressed. Read more

[src]

Returns the minimum size the view requires with the given restrictions. Read more

[src]

Draws the view with the given printer (includes bounds) and focus.

[src]

This view is offered focus. Will it take it? Read more

[src]

Returns true if the view content changed since last layout phase. Read more

[src]

Called once the size for this view has been decided, Read more

[src]

Runs a closure on the view identified by the given selector. Read more

[src]

Moves the focus to the view identified by the given selector. Read more