pub struct CopyEngine { /* private fields */ }Expand description
ファイルコピー最適化エンジン
ファイルサイズに応じて最適なコピー手法を選択します。
§機能
- 小ファイル: 標準の
fs::copyを使用(高速) - 大ファイル: バッファリングコピー(メモリ効率)
- 並列処理対応: 複数ファイルの同時コピー
§使用例
use backup_suite::core::copy_engine::CopyEngine;
use std::path::Path;
let engine = CopyEngine::new();
let bytes = engine.copy_file(
Path::new("/source/file.txt"),
Path::new("/dest/file.txt")
).unwrap();
println!("{}バイトをコピーしました", bytes);Implementations§
Source§impl CopyEngine
impl CopyEngine
Sourcepub fn with_config(buffer_size: usize, parallel_threshold: u64) -> Self
pub fn with_config(buffer_size: usize, parallel_threshold: u64) -> Self
Sourcepub fn copy_file(&self, source: &Path, dest: &Path) -> Result<u64>
pub fn copy_file(&self, source: &Path, dest: &Path) -> Result<u64>
ファイルをコピー
ファイルサイズに応じて最適なコピー手法を自動選択します。
§引数
source- コピー元ファイルパスdest- コピー先ファイルパス
§戻り値
コピーしたバイト数
§Errors
以下の場合にエラーを返します:
- ファイルメタデータの取得に失敗した場合
- ファイルのオープンに失敗した場合(読み取り・書き込み)
- ファイルの読み込みに失敗した場合
- ファイルの書き込みに失敗した場合
- バッファのフラッシュに失敗した場合
- ファイルパーミッションの設定に失敗した場合(Unix系OSのみ)
§使用例
use backup_suite::core::copy_engine::CopyEngine;
use std::path::Path;
let engine = CopyEngine::new();
let bytes = engine.copy_file(
Path::new("/source/file.txt"),
Path::new("/dest/file.txt")
).unwrap();Sourcepub fn buffer_size(&self) -> usize
pub fn buffer_size(&self) -> usize
Sourcepub fn parallel_threshold(&self) -> u64
pub fn parallel_threshold(&self) -> u64
Trait Implementations§
Source§impl Clone for CopyEngine
impl Clone for CopyEngine
Source§fn clone(&self) -> CopyEngine
fn clone(&self) -> CopyEngine
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CopyEngine
impl Debug for CopyEngine
Auto Trait Implementations§
impl Freeze for CopyEngine
impl RefUnwindSafe for CopyEngine
impl Send for CopyEngine
impl Sync for CopyEngine
impl Unpin for CopyEngine
impl UnwindSafe for CopyEngine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.