Skip to main content

qubit_fs/traits/
file_reader.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2026 Haixing Hu.
4 *
5 *    SPDX-License-Identifier: Apache-2.0
6 *
7 *    Licensed under the Apache License, Version 2.0.
8 *
9 ******************************************************************************/
10//! Reader trait for filesystem resources.
11
12use std::io::Read;
13
14use crate::FileMetadata;
15
16/// Read handle returned by filesystem implementations.
17pub trait FileReader: Read + Send {
18    /// Gets metadata associated with this reader when it was opened.
19    ///
20    /// # Returns
21    /// `Some` metadata when the provider captured it, or `None` otherwise.
22    fn metadata(&self) -> Option<&FileMetadata> {
23        None
24    }
25}
26
27impl<T> FileReader for T where T: Read + Send {}