pub struct FileLock {
    pub file: File,
}
Expand description

Represents the actually locked file

Fields

file: File

the std::fs::File of the file that’s locked

Implementations

Try to lock the specified file

Parameters

path is the path of the file we want to lock on

is_blocking is a flag to indicate if we should block if it’s already locked

options is a mutable reference to a std::fs::OpenOptions object to configure the underlying file

Examples
extern crate file_lock;

use file_lock::{FileLock, FileOptions};
use std::fs::OpenOptions;
use std::io::prelude::*;

fn main() {
    let should_we_block  = true;
    let options = FileOptions::new()
                        .write(true)
                        .create(true)
                        .append(true);

    let mut filelock = match FileLock::lock("myfile.txt", should_we_block, options) {
        Ok(lock) => lock,
        Err(err) => panic!("Error getting write lock: {}", err),
    };

    filelock.file.write_all(b"Hello, World!").is_ok();
}

Unlock our locked file

Note: This method is optional as the file lock will be unlocked automatically when dropped

Examples
extern crate file_lock;

use file_lock::{FileLock, FileOptions};
use std::io::prelude::*;

fn main() {
    let should_we_block  = true;
    let lock_for_writing = FileOptions::new().write(true).create(true);

    let mut filelock = match FileLock::lock("myfile.txt", should_we_block, lock_for_writing) {
        Ok(lock) => lock,
        Err(err) => panic!("Error getting write lock: {}", err),
    };

    filelock.file.write_all(b"Hello, World!").is_ok();

    match filelock.unlock() {
        Ok(_)    => println!("Successfully unlocked the file"),
        Err(err) => panic!("Error unlocking the file: {}", err),
    };
}

Trait Implementations

Formats the value using the given formatter. Read more

Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.