Add Runtime::store_backend_to_stdout(), make _stdio() variant use stdin properly
This commit is contained in:
parent
2790042f6f
commit
699f4083e9
1 changed files with 20 additions and 1 deletions
|
@ -358,7 +358,7 @@ impl<'a> Runtime<'a> {
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
|
|
||||||
let mut input = ::std::io::empty();
|
let mut input = ::std::io::stdin();
|
||||||
let output = ::std::io::stdout();
|
let output = ::std::io::stdout();
|
||||||
let output = Rc::new(RefCell::new(output));
|
let output = Rc::new(RefCell::new(output));
|
||||||
let mapper = JsonMapper::new();
|
let mapper = JsonMapper::new();
|
||||||
|
@ -372,6 +372,25 @@ impl<'a> Runtime<'a> {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn store_backend_to_stdout(&mut self) -> Result<(), RuntimeError> {
|
||||||
|
use libimagstore::file_abstraction::stdio::mapper::json::JsonMapper;
|
||||||
|
use libimagstore::file_abstraction::stdio::out::StdoutFileAbstraction;
|
||||||
|
use std::rc::Rc;
|
||||||
|
use std::cell::RefCell;
|
||||||
|
|
||||||
|
let output = ::std::io::stdout();
|
||||||
|
let output = Rc::new(RefCell::new(output));
|
||||||
|
let mapper = JsonMapper::new();
|
||||||
|
|
||||||
|
StdoutFileAbstraction::new(output, mapper)
|
||||||
|
.map_err_into(RuntimeErrorKind::Instantiate)
|
||||||
|
.and_then(|backend| {
|
||||||
|
self.store
|
||||||
|
.reset_backend(Box::new(backend))
|
||||||
|
.map_err_into(RuntimeErrorKind::Instantiate)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/// Get a editor command object which can be called to open the $EDITOR
|
/// Get a editor command object which can be called to open the $EDITOR
|
||||||
pub fn editor(&self) -> Option<Command> {
|
pub fn editor(&self) -> Option<Command> {
|
||||||
self.cli()
|
self.cli()
|
||||||
|
|
Loading…
Reference in a new issue