cpp-pack 0.1.1

A simple program to zip C++ projects for university assignments.
Documentation
use std::fs::File;
use std::io::{self, Read, Write};
use std::path::Path;
use zip::write::FileOptions;
use zip::ZipWriter;

pub fn copy_to_zip<P: AsRef<Path>>(path: P, paths: &[P]) {
    let zip_file = File::create(&path).expect("Failed to create zip file.");

    let mut zip = ZipWriter::new(zip_file);

    let options = FileOptions::default();

    for file_path in paths {
        let file = File::open(file_path).expect("Failed to copy file contents");
        let file_name = file_path
            .as_ref()
            .file_name()
            .expect("Failed to get file name")
            .to_str()
            .expect("Failed to convert file name into a string.");

        zip.start_file(file_name, options)
            .expect("Failed to zip file.");

        let mut buffer = Vec::new();
        io::copy(&mut file.take(u64::MAX), &mut buffer).expect("Failed to copy data.");

        zip.write_all(&buffer).expect("Failed to write data.");
    }

    zip.finish().expect("Failed to finalize zip file");
}