rusteval 0.2.0

Make your application's structs and functions interactive
Documentation
use rusteval::{Interactive, InteractiveRoot, PartialDebug};

#[derive(Interactive, Default)]
struct NotDebug {
    field: u8,
}

#[derive(Interactive, PartialDebug, Default)]
struct Parent {
    not_debug: NotDebug,
}

#[derive(InteractiveRoot, Default)]
struct Root {
    parent: Parent,
}

#[test]
fn test_no_debug_field() {
    let mut root = Root::default();
    assert_eq!(root.eval_to_string("parent.not_debug.field"), "0");
}

#[test]
fn test_no_debug_access() {
    let mut root = Root::default();
    assert_eq!(
        root.eval_to_string("parent.not_debug"),
        "´partial_debug::NotDebug´ doesn't implement ´Debug´"
    );
}

#[test]
fn test_partial_debug() {
    let mut root = Root::default();
    assert_eq!(
        root.eval_to_string("parent"),
        "Parent { not_debug: Unknown }"
    );
}