about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAviram Hassan <aviramyhassan@gmail.com>2024-09-24 18:52:54 +0300
committerAviram Hassan <aviramyhassan@gmail.com>2024-09-24 20:49:56 +0300
commit46fd76e9a5687dc7ac6bfad1c715ceaef9e8cf29 (patch)
treec600488eb83274f95c1d478fe66fea6a1da5f427
parent4cbfcf1b7f16245176488e581f57b39a7e32bc31 (diff)
downloadrust-46fd76e9a5687dc7ac6bfad1c715ceaef9e8cf29.tar.gz
rust-46fd76e9a5687dc7ac6bfad1c715ceaef9e8cf29.zip
add InProgress ErrorKind gated behind io_error_inprogress feature
Co-authored-by: David Tolnay <dtolnay@gmail.com>
Co-authored-by: nora <48135649+Noratrieb@users.noreply.github.com>
-rw-r--r--library/std/src/io/error.rs6
-rw-r--r--library/std/src/io/error/repr_bitpacked.rs1
-rw-r--r--library/std/src/sys/pal/unix/mod.rs1
3 files changed, 8 insertions, 0 deletions
diff --git a/library/std/src/io/error.rs b/library/std/src/io/error.rs
index 6ecd9469c17..795cc64e957 100644
--- a/library/std/src/io/error.rs
+++ b/library/std/src/io/error.rs
@@ -400,6 +400,11 @@ pub enum ErrorKind {
     #[stable(feature = "out_of_memory_error", since = "1.54.0")]
     OutOfMemory,
 
+    /// The operation was partially successful and needs to be checked
+    /// later on due to not blocking.
+    #[unstable(feature = "io_error_inprogress", issue = "none")]
+    InProgress,
+
     // "Unusual" error kinds which do not correspond simply to (sets
     // of) OS error codes, should be added just above this comment.
     // `Other` and `Uncategorized` should remain at the end:
@@ -449,6 +454,7 @@ impl ErrorKind {
             FilesystemQuotaExceeded => "filesystem quota exceeded",
             HostUnreachable => "host unreachable",
             Interrupted => "operation interrupted",
+            InProgress => "in progress",
             InvalidData => "invalid data",
             InvalidFilename => "invalid filename",
             InvalidInput => "invalid input parameter",
diff --git a/library/std/src/io/error/repr_bitpacked.rs b/library/std/src/io/error/repr_bitpacked.rs
index 9d3ade46bd9..80ba8455df3 100644
--- a/library/std/src/io/error/repr_bitpacked.rs
+++ b/library/std/src/io/error/repr_bitpacked.rs
@@ -348,6 +348,7 @@ fn kind_from_prim(ek: u32) -> Option<ErrorKind> {
         UnexpectedEof,
         Unsupported,
         OutOfMemory,
+        InProgress,
         Uncategorized,
     })
 }
diff --git a/library/std/src/sys/pal/unix/mod.rs b/library/std/src/sys/pal/unix/mod.rs
index 1c9159e5fba..0d63b1119d5 100644
--- a/library/std/src/sys/pal/unix/mod.rs
+++ b/library/std/src/sys/pal/unix/mod.rs
@@ -279,6 +279,7 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind {
         libc::ETIMEDOUT => TimedOut,
         libc::ETXTBSY => ExecutableFileBusy,
         libc::EXDEV => CrossesDevices,
+        libc::EINPROGRESS => InProgress,
 
         libc::EACCES | libc::EPERM => PermissionDenied,