Impl Mail::import_from_path()
This commit is contained in:
parent
03ae714970
commit
5b8239e45e
1 changed files with 13 additions and 5 deletions
|
@ -1,11 +1,16 @@
|
||||||
use std::result::Result as RResult;
|
use std::result::Result as RResult;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
use std::path::PathBuf;
|
||||||
|
|
||||||
use libimagstore::store::{FileLockEntry, Store};
|
use libimagstore::store::{FileLockEntry, Store};
|
||||||
|
use libimagref::reference::Ref;
|
||||||
|
use libimagref::flags::RefFlags;
|
||||||
|
|
||||||
use mailparse::{MailParseError, ParsedMail, parse_mail};
|
use mailparse::{MailParseError, ParsedMail, parse_mail};
|
||||||
|
|
||||||
|
use hasher::MailHasher;
|
||||||
use result::Result;
|
use result::Result;
|
||||||
|
use error::{MapErrInto, MailErrorKind as MEK};
|
||||||
|
|
||||||
struct Buffer(String);
|
struct Buffer(String);
|
||||||
|
|
||||||
|
@ -21,16 +26,19 @@ impl From<String> for Buffer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Mail<'a> {
|
pub struct Mail<'a>(Ref<'a>);
|
||||||
fle: FileLockEntry<'a>,
|
|
||||||
buffer: Buffer,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a> Mail<'a> {
|
impl<'a> Mail<'a> {
|
||||||
|
|
||||||
/// Imports a mail from the Path passed
|
/// Imports a mail from the Path passed
|
||||||
pub fn import_from_path<P: AsRef<Path>>(store: &Store, p: P) -> Result<Mail> {
|
pub fn import_from_path<P: AsRef<Path>>(store: &Store, p: P) -> Result<Mail> {
|
||||||
unimplemented!()
|
let h = MailHasher::new();
|
||||||
|
let f = RefFlags::default().with_content_hashing(true).with_permission_tracking(false);
|
||||||
|
let p = PathBuf::from(p.as_ref());
|
||||||
|
|
||||||
|
Ref::create_with_hasher(store, p, f, h)
|
||||||
|
.map_err_into(MEK::RefCreationError)
|
||||||
|
.map(|r| Mail(r))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Imports a mail from the String passed
|
/// Imports a mail from the String passed
|
||||||
|
|
Loading…
Reference in a new issue