rs-tar2sqlite 0.1.0

Converts the tar file to the sqlar.
Documentation
use std::io;

use rusqlite::Statement;

use crate::core::TarEntry;

pub struct Stmt<'a>(pub Statement<'a>);

impl<'a> Stmt<'a> {
    pub fn upsert(&mut self, ent: &TarEntry) -> Result<usize, io::Error> {
        let name: &str = &ent.name;
        let mode: u32 = ent.mode;
        let modified_unixtime: u64 = ent.modified_unixtime;
        let mtime: i64 = modified_unixtime.try_into().map_err(io::Error::other)?;
        let size: u64 = ent.data.len() as u64;
        let sz: i64 = size.try_into().map_err(io::Error::other)?;
        let data: &[u8] = &ent.data;
        self.0
            .execute(rusqlite::params![name, mode, mtime, sz, data,])
            .map_err(io::Error::other)
    }
}