[][src]Struct cursive_hexview::HexView

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

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

    // cur.run();
}

Methods

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 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 layout(&mut self, XY<usize>)
[src]

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

fn needs_relayout(&self) -> bool
[src]

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

fn call_on_any(
    &mut self,
    &Selector,
    Box<dyn FnMut(&mut (dyn Any + 'static)) + 'a>
)
[src]

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

fn focus_view(&mut self, &Selector) -> Result<(), ()>
[src]

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

fn important_area(&self, view_size: XY<usize>) -> Rect
[src]

What part of the view is important and should be visible? Read more

Auto Trait Implementations

impl Send for HexView

impl Sync for HexView

Blanket Implementations

impl<T> From for T
[src]

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

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

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

impl<T> View for T where
    T: ViewWrapper
[src]

impl<T> Boxable for T where
    T: View
[src]

fn boxed(self, width: SizeConstraint, height: SizeConstraint) -> BoxView<Self>
[src]

Wraps self in a BoxView with the given size constraints.

fn fixed_size<S>(self, size: S) -> BoxView<Self> where
    S: Into<XY<usize>>, 
[src]

Wraps self into a fixed-size BoxView.

fn fixed_width(self, width: usize) -> BoxView<Self>
[src]

Wraps self into a fixed-width BoxView.

fn fixed_height(self, height: usize) -> BoxView<Self>
[src]

Wraps self into a fixed-width BoxView.

fn full_screen(self) -> BoxView<Self>
[src]

Wraps self into a full-screen BoxView.

fn full_width(self) -> BoxView<Self>
[src]

Wraps self into a full-width BoxView.

fn full_height(self) -> BoxView<Self>
[src]

Wraps self into a full-height BoxView.

fn max_size<S>(self, size: S) -> BoxView<Self> where
    S: Into<XY<usize>>, 
[src]

Wraps self into a limited-size BoxView.

fn max_width(self, max_width: usize) -> BoxView<Self>
[src]

Wraps self into a limited-width BoxView.

fn max_height(self, max_height: usize) -> BoxView<Self>
[src]

Wraps self into a limited-height BoxView.

fn min_size<S>(self, size: S) -> BoxView<Self> where
    S: Into<XY<usize>>, 
[src]

Wraps self into a BoxView at least sized size.

fn min_width(self, min_width: usize) -> BoxView<Self>
[src]

Wraps self in a BoxView at least min_width wide.

fn min_height(self, min_height: usize) -> BoxView<Self>
[src]

Wraps self in a BoxView at least min_height tall.

impl<T> Identifiable for T where
    T: View
[src]

fn with_id<S>(self, id: S) -> IdView<Self> where
    S: Into<String>, 
[src]

Wraps this view into an IdView with the given id. Read more

impl<T> Scrollable for T where
    T: View
[src]

fn scrollable(self) -> ScrollView<Self>
[src]

Wraps self in a ScrollView.

impl<T> Finder for T where
    T: View
[src]

fn find_id<V, F, R>(&mut self, id: &str, callback: F) -> Option<R> where
    F: FnOnce(&mut V) -> R,
    V: View + Any
[src]

Convenient method to use call_on with a view::Selector::Id.

impl<T> With for T
[src]

fn with<F>(self, f: F) -> Self where
    F: FnOnce(&mut Self), 
[src]

Calls the given closure on self.

fn try_with<E, F>(self, f: F) -> Result<Self, E> where
    F: FnOnce(&mut Self) -> Result<(), E>, 
[src]

Calls the given closure on self.

fn with_if<F>(self, condition: bool, f: F) -> Self where
    F: FnOnce(&mut Self), 
[src]

Calls the given closure if condition == true.

impl<T> AnyView for T where
    T: View
[src]

fn as_any(&self) -> &(dyn Any + 'static)
[src]

Downcast self to a Any.

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
[src]

Downcast self to a mutable Any.

impl<T> IntoBoxedView for T where
    T: View
[src]

impl<T> Erased for T