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§
Source§impl 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 Freeze for FileLock
impl RefUnwindSafe for FileLock
impl Send for FileLock
impl Sync for FileLock
impl Unpin for FileLock
impl UnwindSafe for FileLock
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more