newer_type_std/
io.rs

1use crate::emit_traits;
2use newer_type::target;
3
4emit_traits! {
5    #[implement_of(newer_type_std::io::Read)]
6    #[slot(std::io::Cursor<Vec<u8>>)]
7    #[target(alternative = ::std::io::Read)]
8    pub trait Read {
9        fn read(&mut self, buf: &mut [::core::primitive::u8]) -> ::std::io::Result<::core::primitive::usize>;
10    }
11
12    #[implement_of(newer_type_std::io::Read)]
13    #[slot(std::io::Cursor<Vec<u8>>)]
14    #[target(alternative = ::std::io::Write)]
15    pub trait Write {
16        fn write(&mut self, buf: &[::core::primitive::u8]) -> ::std::io::Result<::core::primitive::usize>;
17        fn flush(&mut self) -> ::std::io::Result<()>;
18        fn write_all(&mut self, mut buf: &[::core::primitive::u8]) -> ::std::io::Result<()>;
19    }
20
21    #[implement_of(
22        newer_type_std::io::Read,
23        newer_type_std::io::BufRead,
24    )]
25    #[slot(std::io::Cursor<Vec<u8>>)]
26    #[target(alternative = ::std::io::BufRead)]
27    pub trait BufRead: [::std::io::Read] {
28        fn fill_buf(&mut self) -> ::std::io::Result<&[::core::primitive::u8]>;
29        fn consume(&mut self, amt: ::core::primitive::usize);
30    }
31}
32
33#[rustversion::since(1.80)]
34emit_traits! {
35    #[implement_of(newer_type_std::io::Seek)]
36    #[slot(std::fs::File)]
37    #[target(alternative = ::std::io::Seek)]
38    pub trait Seek {
39        fn seek(&mut self, pos: ::std::io::SeekFrom) -> ::std::io::Result<::core::primitive::u64>;
40        fn rewind(&mut self) -> ::std::io::Result<()>;
41        fn stream_position(&mut self) -> ::std::io::Result<::core::primitive::u64>;
42        fn seek_relative(&mut self, offset: ::core::primitive::i64) -> ::std::io::Result<()>;
43    }
44}
45
46#[rustversion::before(1.80)]
47emit_traits! {
48    #[implement_of(newer_type_std::io::Seek)]
49    #[slot(std::fs::File)]
50    #[target(alternative = ::std::io::Seek)]
51    pub trait Seek {
52        fn seek(&mut self, pos: ::std::io::SeekFrom) -> ::std::io::Result<::core::primitive::u64>;
53        fn rewind(&mut self) -> ::std::io::Result<()>;
54        fn stream_position(&mut self) -> ::std::io::Result<::core::primitive::u64>;
55    }
56}