allow-unwrap-in-tests = true
allow-expect-in-tests = true
disallowed-methods = [
{ path = "std::fs::read", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::read_to_string", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::read_dir", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::write", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::copy", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::rename", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::create_dir", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::create_dir_all", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::remove_file", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::remove_dir", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::remove_dir_all", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::metadata", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::symlink_metadata", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::canonicalize", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::path::Path::exists", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::path::Path::try_exists", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::path::Path::is_file", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::path::Path::is_dir", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::path::Path::metadata", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::path::Path::read_dir", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::path::Path::canonicalize", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::path::absolute", reason = "reads the working directory: not in library code (CONTRIBUTING.md, File access)" },
{ path = "std::env::var", reason = "hidden options: the caller passes them (CONTRIBUTING.md, File access)" },
{ path = "std::env::var_os", reason = "hidden options: the caller passes them (CONTRIBUTING.md, File access)" },
{ path = "std::env::vars", reason = "hidden options: the caller passes them (CONTRIBUTING.md, File access)" },
{ path = "std::env::current_dir", reason = "hidden options: the caller passes them (CONTRIBUTING.md, File access)" },
{ path = "std::process::Command::new", reason = "no processes in library code (CONTRIBUTING.md, File access)" },
{ path = "std::fs::exists", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::read_link", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::hard_link", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::set_permissions", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::soft_link", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::os::unix::fs::symlink", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)", allow-invalid = true },
{ path = "std::path::Path::read_link", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::path::Path::is_symlink", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::env::args", reason = "hidden options: the caller passes them (CONTRIBUTING.md, File access)" },
{ path = "std::env::args_os", reason = "hidden options: the caller passes them (CONTRIBUTING.md, File access)" },
{ path = "std::env::temp_dir", reason = "reads the environment (the temporary folder): not in library code (CONTRIBUTING.md, File access)" },
{ path = "std::env::home_dir", reason = "hidden options: the caller passes them (CONTRIBUTING.md, File access)" },
{ path = "std::env::set_current_dir", reason = "hidden options: the caller passes them (CONTRIBUTING.md, File access)" },
{ path = "std::env::set_var", reason = "hidden options: the caller passes them (CONTRIBUTING.md, File access)" },
{ path = "std::env::remove_var", reason = "hidden options: the caller passes them (CONTRIBUTING.md, File access)" },
{ path = "std::env::vars_os", reason = "hidden options: the caller passes them (CONTRIBUTING.md, File access)" },
{ path = "std::process::exit", reason = "no processes in library code (CONTRIBUTING.md, File access)" },
{ path = "std::process::abort", reason = "no processes in library code (CONTRIBUTING.md, File access)" },
{ path = "std::io::stdin", reason = "hidden options: the caller passes them (CONTRIBUTING.md, File access)" },
]
disallowed-types = [
{ path = "std::fs::File", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::OpenOptions", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::fs::DirBuilder", reason = "file access: only the modules that read a player's files (CONTRIBUTING.md, File access)" },
{ path = "std::process::Command", reason = "no processes in library code (CONTRIBUTING.md, File access)" },
]