cap_fs_ext/
is_file_read_write.rs1use cap_primitives::fs::is_file_read_write;
2use io_lifetimes::AsFilelike;
3use std::io;
4
5pub trait IsFileReadWrite {
12 fn is_file_read_write(&self) -> io::Result<(bool, bool)>;
14}
15
16impl IsFileReadWrite for std::fs::File {
17 #[inline]
18 fn is_file_read_write(&self) -> io::Result<(bool, bool)> {
19 is_file_read_write(self)
20 }
21}
22
23#[cfg(feature = "std")]
24impl IsFileReadWrite for cap_std::fs::File {
25 #[inline]
26 fn is_file_read_write(&self) -> io::Result<(bool, bool)> {
27 is_file_read_write(&self.as_filelike_view::<std::fs::File>())
28 }
29}
30
31#[cfg(all(feature = "std", feature = "fs_utf8"))]
32impl IsFileReadWrite for cap_std::fs_utf8::File {
33 #[inline]
34 fn is_file_read_write(&self) -> io::Result<(bool, bool)> {
35 is_file_read_write(&self.as_filelike_view::<std::fs::File>())
36 }
37}
38
39#[cfg(feature = "async_std")]
40impl IsFileReadWrite for async_std::fs::File {
41 #[inline]
42 fn is_file_read_write(&self) -> io::Result<(bool, bool)> {
43 is_file_read_write(&self.as_filelike_view::<std::fs::File>())
44 }
45}
46
47#[cfg(feature = "async_std")]
48impl IsFileReadWrite for cap_async_std::fs::File {
49 #[inline]
50 fn is_file_read_write(&self) -> io::Result<(bool, bool)> {
51 is_file_read_write(&self.as_filelike_view::<std::fs::File>())
52 }
53}
54
55#[cfg(all(feature = "async_std", feature = "fs_utf8"))]
56impl IsFileReadWrite for cap_async_std::fs_utf8::File {
57 #[inline]
58 fn is_file_read_write(&self) -> io::Result<(bool, bool)> {
59 is_file_read_write(&self.as_filelike_view::<std::fs::File>())
60 }
61}