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 {