@@ -653,15 +653,29 @@ impl OpenOptions {
653653 /// # Errors
654654 ///
655655 /// This function will return an error under a number of different
656- /// circumstances, to include but not limited to:
657- ///
658- /// * Opening a file that does not exist without setting `create` or
659- /// `create_new`.
660- /// * Attempting to open a file with access that the user lacks
661- /// permissions for
662- /// * Filesystem-level errors (full disk, etc)
663- /// * Invalid combinations of open options (truncate without write access,
664- /// no access mode set, etc)
656+ /// circumstances. Some of these error conditions are listed here, together
657+ /// with their [`ErrorKind`]. The mapping to [`ErrorKind`]s is not part of
658+ /// the compatiblity contract of the function, especially the `Other` kind
659+ /// might change to more specific kinds in the future.
660+ ///
661+ /// * [`NotFound`]: The specified file does not exist and neither `create`
662+ /// or `create_new` is set.
663+ /// * [`NotFound`]: One of the directory components of the file path does
664+ /// not exist.
665+ /// * [`PermissionDenied`]: The user lacks permission to get the specified
666+ /// access rights for the file.
667+ /// * [`PermissionDenied`]: The user lacks permission to open one of the
668+ /// directory components of the specified path.
669+ /// * [`AlreadyExists`]: `create_new` was specified and the file already
670+ /// exists.
671+ /// * [`InvalidInput`]: Invalid combinations of open options (truncate
672+ /// without write access, no access mode set, etc.).
673+ /// * [`Other`]: One of the directory components of the specified file path
674+ /// was not, in fact, a directory.
675+ /// * [`Other`]: Filesystem-level errors: full disk, write permission
676+ /// requested on a read-only file system, exceeded disk quota, too many
677+ /// open files, too long filename, too many symbolic links in the
678+ /// specified path (Unix-like systems only), etc.
665679 ///
666680 /// # Examples
667681 ///
@@ -670,6 +684,13 @@ impl OpenOptions {
670684 ///
671685 /// let file = OpenOptions::new().open("foo.txt");
672686 /// ```
687+ ///
688+ /// [`ErrorKind`]: ../io/enum.ErrorKind.html
689+ /// [`AlreadyExists`]: ../io/enum.ErrorKind.html#variant.AlreadyExists
690+ /// [`InvalidInput`]: ../io/enum.ErrorKind.html#variant.InvalidInput
691+ /// [`NotFound`]: ../io/enum.ErrorKind.html#variant.NotFound
692+ /// [`Other`]: ../io/enum.ErrorKind.html#variant.Other
693+ /// [`PermissionDenied`]: ../io/enum.ErrorKind.html#variant.PermissionDenied
673694 #[ stable( feature = "rust1" , since = "1.0.0" ) ]
674695 pub fn open < P : AsRef < Path > > ( & self , path : P ) -> io:: Result < File > {
675696 self . _open ( path. as_ref ( ) )
0 commit comments