Struct DirBuilder

pub struct DirBuilder { /* private fields */ }

A builder for creating directories in various manners.

This is a specialized version of std::fs::DirBuilder for usage on the Tokio runtime.

Implementations

impl DirBuilder

fn new() -> Self

Creates a new set of options with default mode/security settings for all platforms and also non-recursive.

This is an async version of std::fs::DirBuilder::new.

Examples

use tokio::fs::DirBuilder;

let builder = DirBuilder::new();
fn recursive(&mut self, recursive: bool) -> &mut Self

Indicates whether to create directories recursively (including all parent directories). Parents that do not exist are created with the same security and permissions settings.

This option defaults to false.

This is an async version of std::fs::DirBuilder::recursive.

Examples

use tokio::fs::DirBuilder;

let mut builder = DirBuilder::new();
builder.recursive(true);
async fn create(&self, path: impl AsRef<Path>) -> Result<()>

Creates the specified directory with the configured options.

It is considered an error if the directory already exists unless recursive mode is enabled.

This is an async version of std::fs::DirBuilder::create.

Errors

An error will be returned under the following circumstances:

  • Path already points to an existing file.
  • Path already points to an existing directory and the mode is non-recursive.
  • The calling process doesn't have permissions to create the directory or its missing parents.
  • Other I/O error occurred.

Examples

use tokio::fs::DirBuilder;
use std::io;

#[tokio::main]
async fn main() -> io::Result<()> {
    DirBuilder::new()
        .recursive(true)
        .create("/tmp/foo/bar/baz")
        .await?;

    Ok(())
}

impl DirBuilder

fn mode(&mut self, mode: u32) -> &mut Self

Sets the mode to create new directories with.

This option defaults to 0o777.

Examples

use tokio::fs::DirBuilder;

let mut builder = DirBuilder::new();
builder.mode(0o775);

Trait Implementations

impl Debug for DirBuilder

fn fmt(&self, f: &mut Formatter<'_>) -> Result

impl Default for DirBuilder

fn default() -> DirBuilder

Auto Trait Implementations

impl Freeze for DirBuilder

impl RefUnwindSafe for DirBuilder

impl Send for DirBuilder

impl Sync for DirBuilder

impl Unpin for DirBuilder

impl UnsafeUnpin for DirBuilder

impl UnwindSafe for DirBuilder

Blanket Implementations

impl<T> Any for DirBuilder where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for DirBuilder where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for DirBuilder where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

impl<T> From<T> for DirBuilder

fn from(t: T) -> T

Returns the argument unchanged.

impl<T, U> Into<U> for DirBuilder where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom<U> for DirBuilder where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for DirBuilder where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error;
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>