// Generated by Lisette bindgen
// Source: io/ioutil (Go stdlib)
// Go: 1.25.10
// Lisette: 0.3.0

import "go:io"
import "go:io/fs"
import "go:os"

/// NopCloser returns a ReadCloser with a no-op Close method wrapping
/// the provided Reader r.
/// 
/// Deprecated: As of Go 1.16, this function simply calls [io.NopCloser].
pub fn NopCloser(r: io.Reader) -> io.ReadCloser

/// ReadAll reads from r until an error or EOF and returns the data it read.
/// A successful call returns err == nil, not err == EOF. Because ReadAll is
/// defined to read from src until EOF, it does not treat an EOF from Read
/// as an error to be reported.
/// 
/// Deprecated: As of Go 1.16, this function simply calls [io.ReadAll].
pub fn ReadAll(r: io.Reader) -> Partial<Slice<byte>, error>

/// ReadDir reads the directory named by dirname and returns
/// a list of fs.FileInfo for the directory's contents,
/// sorted by filename. If an error occurs reading the directory,
/// ReadDir returns no directory entries along with the error.
/// 
/// Deprecated: As of Go 1.16, [os.ReadDir] is a more efficient and correct choice:
/// it returns a list of [fs.DirEntry] instead of [fs.FileInfo],
/// and it returns partial results in the case of an error
/// midway through reading a directory.
/// 
/// If you must continue obtaining a list of [fs.FileInfo], you still can:
/// 
/// 	entries, err := os.ReadDir(dirname)
/// 	if err != nil { ... }
/// 	infos := make([]fs.FileInfo, 0, len(entries))
/// 	for _, entry := range entries {
/// 		info, err := entry.Info()
/// 		if err != nil { ... }
/// 		infos = append(infos, info)
/// 	}
pub fn ReadDir(dirname: string) -> Result<Slice<fs.FileInfo>, error>

/// ReadFile reads the file named by filename and returns the contents.
/// A successful call returns err == nil, not err == EOF. Because ReadFile
/// reads the whole file, it does not treat an EOF from Read as an error
/// to be reported.
/// 
/// Deprecated: As of Go 1.16, this function simply calls [os.ReadFile].
pub fn ReadFile(filename: string) -> Result<Slice<byte>, error>

/// TempDir creates a new temporary directory in the directory dir.
/// The directory name is generated by taking pattern and applying a
/// random string to the end. If pattern includes a "*", the random string
/// replaces the last "*". TempDir returns the name of the new directory.
/// If dir is the empty string, TempDir uses the
/// default directory for temporary files (see [os.TempDir]).
/// Multiple programs calling TempDir simultaneously
/// will not choose the same directory. It is the caller's responsibility
/// to remove the directory when no longer needed.
/// 
/// Deprecated: As of Go 1.17, this function simply calls [os.MkdirTemp].
pub fn TempDir(dir: string, pattern: string) -> Result<string, error>

/// TempFile creates a new temporary file in the directory dir,
/// opens the file for reading and writing, and returns the resulting *[os.File].
/// The filename is generated by taking pattern and adding a random
/// string to the end. If pattern includes a "*", the random string
/// replaces the last "*".
/// If dir is the empty string, TempFile uses the default directory
/// for temporary files (see [os.TempDir]).
/// Multiple programs calling TempFile simultaneously
/// will not choose the same file. The caller can use f.Name()
/// to find the pathname of the file. It is the caller's responsibility
/// to remove the file when no longer needed.
/// 
/// Deprecated: As of Go 1.17, this function simply calls [os.CreateTemp].
pub fn TempFile(dir: string, pattern: string) -> Result<Ref<os.File>, error>

/// WriteFile writes data to a file named by filename.
/// If the file does not exist, WriteFile creates it with permissions perm
/// (before umask); otherwise WriteFile truncates it before writing, without changing permissions.
/// 
/// Deprecated: As of Go 1.16, this function simply calls [os.WriteFile].
pub fn WriteFile(filename: string, data: Slice<byte>, perm: fs.FileMode) -> Result<(), error>

/// Discard is an io.Writer on which all Write calls succeed
/// without doing anything.
/// 
/// Deprecated: As of Go 1.16, this value is simply [io.Discard].
pub var Discard: io.Writer
