[][src]Struct cannyls::nvm::FileNvm

pub struct FileNvm { /* fields omitted */ }

ファイルベースのNonVolatileMemoryの実装.

現状の実装ではブロックサイズはBlockSize::min()に固定.

UNIX環境であれば、ファイルはO_DIRECTフラグ付きでオープンされる.

参考

O_DIRECTO_SYNC/O_DSYNCに関して:

Methods

impl FileNvm[src]

pub fn create_if_absent<P: AsRef<Path>>(
    filepath: P,
    capacity: u64
) -> Result<(Self, bool)>
[src]

デフォルト設定で新しいFileNvmインスタンスを生成する.

デフォルト設定では、O_DIRECT (MacではF_NOCACHE)でのバッファリングなしI/Oを行い ファイルアクセスに対する排他制御を行う。

filepathが既に存在する場合にはそれを開き、存在しない場合には新規にファイルを作成する.

返り値のタプルの二番目の値は、ファイルが新規作成されたかどうか (trueなら新規作成).

pub fn create<P: AsRef<Path>>(filepath: P, capacity: u64) -> Result<Self>[src]

デフォルト設定でファイルを新規に作成してFileNvmインスタンスを生成する.

デフォルト設定では、O_DIRECT (MacではF_NOCACHE)でのバッファリングなしI/Oを行い ファイルアクセスに対する排他制御を行う。

pub fn open<P: AsRef<Path>>(filepath: P) -> Result<Self>[src]

デフォルト設定で既存のファイルを開きFileNvmインスタンスを生成する。

デフォルト設定では、O_DIRECT (MacではF_NOCACHE)でのバッファリングなしI/Oを行い ファイルアクセスに対する排他制御を行う。

ここでいう既存のファイルとは、以前に Storage::create 等で 作成済みのlusfファイルを指す。

lusfファイルにはcapacity情報が埋め込まれているので createとは異なりcapacity引数を要求しない。

Trait Implementations

impl Debug for FileNvm[src]

impl NonVolatileMemory for FileNvm[src]

impl Read for FileNvm[src]

impl Seek for FileNvm[src]

impl Write for FileNvm[src]

Auto Trait Implementations

impl RefUnwindSafe for FileNvm

impl Send for FileNvm

impl Sync for FileNvm

impl Unpin for FileNvm

impl UnwindSafe for FileNvm

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<R> ReadBytesExt for R where
    R: Read + ?Sized
[src]

impl<T> SendSyncUnwindSafe for T where
    T: Send + Sync + UnwindSafe + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<W> WriteBytesExt for W where
    W: Write + ?Sized
[src]