headless_lms_utils/file_store/
file_utils.rs

1use super::GenericPayload;
2use futures::TryStreamExt;
3use std::{ffi::OsStr, path::Path};
4use tokio_util::io::ReaderStream;
5
6pub fn get_extension_from_filename(filename: &str) -> Option<&str> {
7    Path::new(filename).extension().and_then(OsStr::to_str)
8}
9
10pub fn file_to_payload(file: std::fs::File) -> GenericPayload {
11    let file = tokio::fs::File::from_std(file);
12    let stream = ReaderStream::new(file).map_err(anyhow::Error::from);
13    Box::pin(stream) as GenericPayload
14}