twitter_api_v1/
tokio_fs_util.rs1use std::{
2 io::{Error as IoError, ErrorKind as IoErrorKind},
3 path::PathBuf,
4};
5
6use tokio::fs::metadata;
7
8#[derive(Debug)]
9pub struct Info {
10 pub file_size: u64,
11 pub file_name: Option<String>,
12}
13
14pub async fn info(path: &PathBuf) -> Result<Info, IoError> {
16 let file_metadata = metadata(&path).await?;
17
18 if !file_metadata.is_file() {
19 return Err(IoError::new(IoErrorKind::Other, "is_file required"));
20 }
21
22 let file_size = file_metadata.len();
23 let file_name = path
24 .file_name()
25 .and_then(|x| x.to_str())
26 .map(|x| x.to_owned());
27
28 Ok(Info {
29 file_size,
30 file_name,
31 })
32}