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
sourceimpl FileLock
impl FileLock
sourcepub fn lock<P: AsRef<Path>>(
path: P,
is_blocking: bool,
options: FileOptions
) -> Result<FileLock, Error>
pub fn lock<P: AsRef<Path>>(
path: P,
is_blocking: bool,
options: FileOptions
) -> Result<FileLock, Error>
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();
}
sourcepub fn unlock(&self) -> Result<(), Error>
pub fn unlock(&self) -> Result<(), Error>
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
Auto Trait Implementations
impl RefUnwindSafe for FileLock
impl Send for FileLock
impl Sync for FileLock
impl Unpin for FileLock
impl UnwindSafe for FileLock
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more