diff --git a/src/conn.rs b/src/conn.rs
index 7860f03b..05ed53b6 100644
--- a/src/conn.rs
+++ b/src/conn.rs
@@ -10,6 +10,14 @@
#![allow(dead_code)]
+use std::fs::{
+ File,
+};
+
+use std::io::{
+ Read,
+};
+
use std::path::{
Path,
};
@@ -385,6 +393,14 @@ impl<'a, 'c> InProgress<'a, 'c> {
self.transact_entities(entities)
}
+ pub fn import
(&mut self, path: P) -> Result
+ where P: AsRef {
+ let mut file = File::open(path)?;
+ let mut text: String = String::new();
+ file.read_to_string(&mut text)?;
+ self.transact(text.as_str())
+ }
+
pub fn rollback(self) -> Result<()> {
self.transaction.rollback().map_err(|e| e.into())
}
diff --git a/src/errors.rs b/src/errors.rs
index de0a57e8..de764957 100644
--- a/src/errors.rs
+++ b/src/errors.rs
@@ -40,6 +40,7 @@ error_chain! {
EdnParseError(edn::ParseError);
Rusqlite(rusqlite::Error);
UuidParseError(uuid::ParseError);
+ IoError(::std::io::Error);
}
links {