Commit Graph

136 Commits

Author SHA1 Message Date
ding-young
a241ffc6b6 Fix link to BufWriter 2024-03-26 18:04:19 +09:00
Guillaume Boisseau
9ccf798fff Rollup merge of #121403 - kornelski:io-oom, r=dtolnay
impl From<TryReserveError> for io::Error

There's an obvious mapping between these two errors, and it makes I/O code less noisy.

I've chosen to use simple `ErrorKind::OutOfMemory` `io::Error`, without keeping `TryReserveError` for the `source()`, because:

* It matches current uses in libstd,
* `ErrorData::Custom` allocates, which is a risky proposition for handling OOM errors specifically.
* Currently `TryReserveError` has no public fields/methods, so it's usefulness is limited. How allocators should report errors, especially custom and verbose ones is still an open question.

Just in case I've added note in the doccomment that this may change.

The compiler forced me to declare stability of this impl. I think this implementation is simple enough that it doesn't need full-blown stabilization period, and I've marked it for the next release, but of course I can adjust the attribute if needed.
2024-03-09 21:40:07 +01:00
Matthias Krüger
876847bed8 Rollup merge of #118623 - haydonryan:master, r=workingjubilee
Improve std::fs::read_to_string example

Resolves  [#118621](https://github.com/rust-lang/rust/issues/118621)

For the original code to succeed it requires address.txt to contain a socketaddress, however it is much easier to follow if this is just any strong - eg address could be a street address or just text.

Also changed the variable name from "foo" to something more meaningful as cargo clippy warns you against using foo as a placeholder.

```
$ cat main.rs
use std::fs;
use std::error::Error;

fn main() -> Result<(), Box<dyn Error>> {
    let addr: String = fs::read_to_string("address.txt")?.parse()?;
    println!("{}", addr);
    Ok(())
}

$ cat address.txt
123 rusty lane
san francisco 94999

$ cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.00s
     Running `/home/haydon/workspace/rust-test-pr/tester/target/debug/tester`
123 rusty lane
san francisco 94999

```
2024-03-08 08:19:16 +01:00
Matthias Krüger
d0e5431eb0 Rollup merge of #109263 - squell:master, r=cuviper
fix typo in documentation for std::fs::Permissions

Please check and re-check this PR carefully to see if I got this right.

But by my logic, if the `read_only` function returns `true`, I would not expect be able to write to the file (it being read only); so this text is meant to clarify that `read_only` being `false` doesn't mean *you* can actually write to the file, just that "in general" someone is able to.
2024-03-02 10:09:34 +01:00
Marc Schoolderman
b353765120 remove potentially misleading sentence about libc::access 2024-02-22 11:42:39 +01:00
Kornel
aa581f0a0a Remove unnecessary map_err 2024-02-21 16:31:53 +00:00
SabrinaJewson
6be93ccbee Add uncontroversial syscall doc aliases to std docs 2024-02-18 14:04:27 +00:00
bors
c9a7db6e20 Auto merge of #120538 - kornelski:read-not-exact, r=m-ou-se
Make File::read_to_end less special

Follow-up to #117925
2024-02-16 11:53:05 +00:00
Haydon Ryan
b5e1ca3918 Update library/std/src/fs.rs
Co-authored-by: Mara Bos <m-ou.se@m-ou.se>
2024-02-15 08:20:45 -06:00
Haydon Ryan
9539feb2f7 Update library/std/src/fs.rs
Co-authored-by: Mara Bos <m-ou.se@m-ou.se>
2024-02-15 08:20:15 -06:00
Mark Rousskov
8043821b3a Bump version placeholders 2024-02-08 07:43:38 -05:00
Kornel
fee4992fb1 Make File::read_to_end less special
Follow-up to #117925
2024-01-31 23:27:05 +00:00
Kornel
60f46289cf Handle out of memory errors in fs::read/read_to_string 2024-01-29 23:53:45 +00:00
León Orell Valerian Liehr
4e265d9fe0 Rollup merge of #119319 - chfogelman:buffered-file-doc, r=the8472
Document that File does not buffer reads/writes

...and refer to `BufReader`/`BufWriter`.

This is a common source of efficiency issues in Rust programs written naively. Including this information with the `File` docs, and adding a link to the wrapper types, will help discoverability.
2024-01-03 16:08:25 +01:00
Carter Hunt Fogelman
5cbe41ae9e Document that File does not buffer reads/writes, refer to BufReader/BufWriter 2023-12-31 16:33:46 -08:00
Ralph Ursprung
62d53211b0 stabilize file_create_new
closes #105135
2023-12-20 08:45:46 +01:00
Haydon Ryan
6e9ca489f7 Updating fs::read example to remove SocketAddress 2023-12-11 12:36:13 -06:00
Haydon Ryan
547f3cef60 fixing error std::fs::read_to_string example documentation 2023-12-11 11:41:33 -06:00
Mark Rousskov
efe54e24aa Substitute version placeholders 2023-11-15 19:40:51 -05:00
Josh Triplett
bcfc48db76 Stabilize file_set_times
Approved via FCP in https://github.com/rust-lang/rust/issues/98245 .
2023-10-31 14:34:02 +08:00
Jason Newcomb
d464b72970 Add more diagnostic items for clippy 2023-10-05 18:21:47 -04:00
bors
ae9c330629 Auto merge of #104101 - betrusted-io:xous-libstd-initial, r=bjorn3
Add initial libstd support for Xous

This patchset adds some minimal support to the tier-3 target `riscv32imac-unknown-xous-elf`. The following features are supported:

* alloc
* thread creation and joining
* thread sleeping
* thread_local
* panic_abort
* mutex
* condvar
* stdout

Additionally, internal support for the various Xous primitives surrounding IPC have been added as part of the Xous FFI. These may be exposed as part of `std::os::xous::ffi` in the future, however for now they are not public.

This represents the minimum viable product. A future patchset will add support for networking and filesystem support.
2023-09-19 07:38:20 +00:00
bors
dc348dbd90 Auto merge of #114448 - SteveLauC:std_fs_read_doc, r=Mark-Simulacrum
docs: improve std::fs::read doc

#### What does this PR do

1. Rephrase a confusing sentence in the document of `std::fs::read()`

-----

Closes #114432

cc `@Dexus0` `@saethlin`
2023-09-01 05:25:44 +00:00
Steve Lau
0e270b1a97 docs: improve std::fs::read doc 2023-09-01 10:54:37 +08:00
Marc Schoolderman
0df002a2e2 rewording after comments by @thomcc 2023-08-29 11:24:48 +02:00
Ben Kimock
1abaf40ec8 Add a new helper to avoid calling io::Error::kind 2023-08-25 21:26:06 -04:00
Sean Cross
0b800577d1 std: fs: skip fs tests on xous
The xous filesystem support is not yet ready for merging.

Signed-off-by: Sean Cross <sean@xobs.io>
2023-08-22 20:25:38 +08:00
Mark Rousskov
c8522adb97 Replace version placeholders with 1.73.0 2023-08-22 06:57:00 -04:00
Thom Chiovoloni
558f49d7aa inline trivial (noop) flush calls 2023-07-28 18:09:12 -07:00
bors
05b82e551e Auto merge of #94748 - tbu-:pr_file_arc, r=Amanieu
Add `Read`, `Write` and `Seek` impls for `Arc<File>` where appropriate

If `&T` implements these traits, `Arc<T>` has no reason not to do so
either. This is useful for operating system handles like `File` or
`TcpStream` which don't need a mutable reference to implement these
traits.

CC #53835.
CC #94744.
2023-07-10 13:26:42 +00:00
Tobias Bucher
11fecf619a Add Read, Write and Seek impls for Arc<File> where appropriate
If `&T` implements these traits, `Arc<T>` has no reason not to do so
either. This is useful for operating system handles like `File` or
`TcpStream` which don't need a mutable reference to implement these
traits.

CC #53835.
CC #94744.
2023-06-23 14:55:43 +02:00
Tobias Bucher
9fc2da1b54 Forward io::{Read,Seek,Write} impls of File to &File
This reduces code duplication.
2023-06-23 14:54:24 +02:00
Tshepang Mbambo
6f61f6ba11 DirEntry::file_name: improve explanation 2023-06-23 04:47:30 +02:00
bors
521f4dae1b Auto merge of #109773 - beetrees:set-file-time-improvements, r=Amanieu
Add creation time support to `FileTimes` on apple and windows

Adds support for setting file creation times on platforms which support changing it directly (currently only Apple and Windows). Based on top of #110093 (which was split from this PR).

ACP: rust-lang/libs-team#199 (currently still in progress)

Tracking issue: #98245

`@rustbot` label +T-libs-api -T-libs
2023-05-19 19:53:14 +00:00
beetrees
db90a0b78d Add creation time support to FileTimes on apple and windows 2023-05-15 15:04:39 +01:00
Vagelis Prokopiou
5fa8c4aced wanting => want 2023-05-15 10:13:08 +03:00
Konrad Borowski
174c0e86ca Inline AsInner implementations 2023-05-01 13:25:09 +02:00
Philpax
d5d2785c86 docs(std): clarify remove_dir_all errors 2023-04-27 03:19:14 +02:00
jyn
ce30232f16 Rollup merge of #110266 - tgross35:try-exists-wording, r=jyn514
Update documentation wording on path 'try_exists' functions

Just eliminate the quadruple negation in `doesn't silently ignore errors unrelated to ... not existing.`
2023-04-26 01:55:50 -05:00
Chris Denton
f74fe8bf4c Limit read size in File::read_to_end loop
This works around performance issues on  Windows by limiting reads the size of reads when the expected size is known.
2023-04-21 20:54:12 +01:00
Trevor Gross
9c567fdaee Update documentation wording on path 'try_exists' functions 2023-04-13 23:36:26 -04:00
Marc R. Schoolderman
53469cfc3f fix typo in documentation for std::fs::Permissions 2023-03-17 14:33:50 +01:00
Kornel
4c2d48ee80 Suggest simpler fs helper methods in File::{open,create} 2023-02-15 18:58:38 +00:00
Kornel
15adc7b5e4 Demonstrate I/O in File examples 2023-02-15 18:47:50 +00:00
André Vennberg
2fea03f5e6 Fix some missed double spaces. 2023-01-14 18:26:38 +01:00
yukang
f7bc68bb4e use with_capacity in read read_to_string 2023-01-11 00:19:27 +08:00
yukang
eae615dfdd Remove unnecessary lseek syscall when using std::fs::read 2023-01-08 05:02:04 +08:00
Yuki Okushi
019795b162 Rollup merge of #105100 - jhpratt:fix-docs, r=JohnTitor
Add missing intra-doc link

Trivial change. This makes the plain text into inline code and makes it a link.

`@rustbot` label +A-docs
2022-12-03 12:51:28 +09:00
Andrius Pukšta
0af5b7265d Add tracking issue for file_create_new 2022-12-01 17:42:31 +02:00
Jacob Pratt
d777c84603 Add missing intra-doc link 2022-11-30 20:42:31 +00:00