Skip to main content

MetadataExt

Trait MetadataExt 

1.1.0 · Source
pub trait MetadataExt {
Show 17 methods // Required methods fn as_raw_stat(&self) -> &stat; fn st_dev(&self) -> u64; fn st_ino(&self) -> u64; fn st_mode(&self) -> u32; fn st_nlink(&self) -> u64; fn st_uid(&self) -> u32; fn st_gid(&self) -> u32; fn st_rdev(&self) -> u64; fn st_size(&self) -> u64; fn st_atime(&self) -> i64; fn st_atime_nsec(&self) -> i64; fn st_mtime(&self) -> i64; fn st_mtime_nsec(&self) -> i64; fn st_ctime(&self) -> i64; fn st_ctime_nsec(&self) -> i64; fn st_blksize(&self) -> u64; fn st_blocks(&self) -> u64;
}
Available on Linux only.
Expand description

OS-specific extensions to fs::Metadata.

Required Methods§

1.1.0 · Source

fn as_raw_stat(&self) -> &stat

👎Deprecated since 1.8.0:

other methods of this trait are now preferred

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Gain a reference to the underlying stat structure which contains the raw information returned by the OS.

The contents of the returned stat are not consistent across Unix platforms. The os::unix::fs::MetadataExt trait contains the cross-Unix abstractions contained within the raw stat.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    let stat = meta.as_raw_stat();
    Ok(())
}
1.8.0 · Source

fn st_dev(&self) -> u64

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the device ID on which this file resides.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_dev());
    Ok(())
}
1.8.0 · Source

fn st_ino(&self) -> u64

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the inode number.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_ino());
    Ok(())
}
1.8.0 · Source

fn st_mode(&self) -> u32

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the file type and mode.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_mode());
    Ok(())
}
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the number of hard links to file.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_nlink());
    Ok(())
}
1.8.0 · Source

fn st_uid(&self) -> u32

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the user ID of the file owner.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_uid());
    Ok(())
}
1.8.0 · Source

fn st_gid(&self) -> u32

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the group ID of the file owner.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_gid());
    Ok(())
}
1.8.0 · Source

fn st_rdev(&self) -> u64

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the device ID that this file represents. Only relevant for special file.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_rdev());
    Ok(())
}
1.8.0 · Source

fn st_size(&self) -> u64

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the size of the file (if it is a regular file or a symbolic link) in bytes.

The size of a symbolic link is the length of the pathname it contains, without a terminating null byte.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_size());
    Ok(())
}
1.8.0 · Source

fn st_atime(&self) -> i64

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the last access time of the file, in seconds since Unix Epoch.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_atime());
    Ok(())
}
1.8.0 · Source

fn st_atime_nsec(&self) -> i64

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the last access time of the file, in nanoseconds since st_atime.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_atime_nsec());
    Ok(())
}
1.8.0 · Source

fn st_mtime(&self) -> i64

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the last modification time of the file, in seconds since Unix Epoch.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_mtime());
    Ok(())
}
1.8.0 · Source

fn st_mtime_nsec(&self) -> i64

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the last modification time of the file, in nanoseconds since st_mtime.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_mtime_nsec());
    Ok(())
}
1.8.0 · Source

fn st_ctime(&self) -> i64

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the last status change time of the file, in seconds since Unix Epoch.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_ctime());
    Ok(())
}
1.8.0 · Source

fn st_ctime_nsec(&self) -> i64

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the last status change time of the file, in nanoseconds since st_ctime.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_ctime_nsec());
    Ok(())
}
1.8.0 · Source

fn st_blksize(&self) -> u64

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the “preferred” block size for efficient filesystem I/O.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_blksize());
    Ok(())
}
1.8.0 · Source

fn st_blocks(&self) -> u64

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the number of blocks allocated to the file, 512-byte units.

§Examples
use std::fs;
use std::io;
use std::os::linux::fs::MetadataExt;

fn main() -> io::Result<()> {
    let meta = fs::metadata("some_file")?;
    println!("{}", meta.st_blocks());
    Ok(())
}

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

1.1.0 · Source§

impl MetadataExt for Metadata