touch

Crates.iotouch
lib.rstouch
version0.0.1
sourcesrc
created_at2016-06-22 14:10:23.842044
updated_at2016-06-22 14:10:23.842044
descriptionA thin wrapper around file and directory operations designed to take remove some of tediousness.
homepagehttps://github.com/mattforni/touch
repositoryhttps://github.com/mattforni/touch
max_upload_size
id5457
size18,838
Matthew Fornaciari (mattforni)

documentation

http://mattforni.github.io/rust/doc/touch

README

touch

Copyright 2016 Matthew Fornaciari mattforni@gmail.com A dead simple wrapper around file and directory manipulation.

Usage

This crate is on crates.io and can be used by adding args to the dependencies in your project's Cargo.toml.

[dependencies]
touch = "0"

and this to your crate root:

extern crate touch;

Example

extern crate touch;

use touch::exists;
use touch::dir;
use touch::file;

const DIR: &'static str = "/tmp/touch";
const FILE_NAME: &'static str = ".example";

fn main() {
    assert!(!exists(DIR));
    assert!(!exists(&path()));

    // Write
    let content = "Content";
    assert!(file::write(&path(), content, false).is_ok());

    // Read
    let mut output = file::read(&path());
    assert_eq!(content, output.unwrap());

    // Overwrite
    let new_content = "New Content";
    assert!(file::write(&path(), new_content, true).is_ok());
    output = file::read(&path());
    assert_eq!(new_content, output.unwrap());

    // Delete
    assert!(dir::delete(DIR).is_ok());
    assert!(!exists(&path()));
    assert!(!exists(DIR));
}

fn path() -> String {
    format!("{}/{}", DIR, FILE_NAME)
}
Commit count: 6

cargo fmt