pub struct SingleDiskFarm { /* private fields */ }
Expand description
Single disk farm abstraction is a container for everything necessary to plot/farm with a single disk.
Farm starts operating during creation and doesn’t stop until dropped (or error happens).
Implementations§
source§impl SingleDiskFarm
impl SingleDiskFarm
sourcepub const METADATA_FILE: &'static str = "metadata.bin"
pub const METADATA_FILE: &'static str = "metadata.bin"
Name of the metadata file
sourcepub async fn new<NC, PosTable>(
options: SingleDiskFarmOptions<'_, NC>,
farm_index: usize,
) -> Result<Self, SingleDiskFarmError>where
NC: NodeClient + Clone,
PosTable: Table,
pub async fn new<NC, PosTable>(
options: SingleDiskFarmOptions<'_, NC>,
farm_index: usize,
) -> Result<Self, SingleDiskFarmError>where
NC: NodeClient + Clone,
PosTable: Table,
Create new single disk farm instance
sourcepub fn collect_summary(directory: PathBuf) -> SingleDiskFarmSummary
pub fn collect_summary(directory: PathBuf) -> SingleDiskFarmSummary
Collect summary of single disk farm for presentational purposes
sourcepub fn effective_disk_usage(
directory: &Path,
cache_percentage: u8,
) -> Result<u64, SingleDiskFarmError>
pub fn effective_disk_usage( directory: &Path, cache_percentage: u8, ) -> Result<u64, SingleDiskFarmError>
Effective on-disk allocation of the files related to the farm (takes some buffer space into consideration).
This is a helpful number in case some files were not allocated properly or were removed and do not correspond to allocated space in the farm info accurately.
sourcepub fn read_all_sectors_metadata(
directory: &Path,
) -> Result<Vec<SectorMetadataChecksummed>>
pub fn read_all_sectors_metadata( directory: &Path, ) -> Result<Vec<SectorMetadataChecksummed>>
Read all sectors metadata
sourcepub fn info(&self) -> &SingleDiskFarmInfo
pub fn info(&self) -> &SingleDiskFarmInfo
Info of this farm
sourcepub fn total_sectors_count(&self) -> SectorIndex
pub fn total_sectors_count(&self) -> SectorIndex
Number of sectors in this farm
sourcepub fn plotted_sectors(&self) -> SingleDiskPlottedSectors
pub fn plotted_sectors(&self) -> SingleDiskPlottedSectors
Read information about sectors plotted so far
sourcepub fn piece_cache(&self) -> SingleDiskPieceCache
pub fn piece_cache(&self) -> SingleDiskPieceCache
Get piece cache instance
sourcepub fn plot_cache(&self) -> DiskPlotCache
pub fn plot_cache(&self) -> DiskPlotCache
Get plot cache instance
sourcepub fn piece_reader(&self) -> DiskPieceReader
pub fn piece_reader(&self) -> DiskPieceReader
Get piece reader to read plotted pieces later
sourcepub fn on_sector_update(
&self,
callback: HandlerFn<(SectorIndex, SectorUpdate)>,
) -> HandlerId
pub fn on_sector_update( &self, callback: HandlerFn<(SectorIndex, SectorUpdate)>, ) -> HandlerId
Subscribe to sector updates
sourcepub fn on_farming_notification(
&self,
callback: HandlerFn<FarmingNotification>,
) -> HandlerId
pub fn on_farming_notification( &self, callback: HandlerFn<FarmingNotification>, ) -> HandlerId
Subscribe to farming notifications
sourcepub fn on_solution(&self, callback: HandlerFn<SolutionResponse>) -> HandlerId
pub fn on_solution(&self, callback: HandlerFn<SolutionResponse>) -> HandlerId
Subscribe to new solution notification
sourcepub async fn run(self) -> Result<()>
pub async fn run(self) -> Result<()>
Run and wait for background threads to exit or return an error
sourcepub fn wipe(directory: &Path) -> Result<()>
pub fn wipe(directory: &Path) -> Result<()>
Wipe everything that belongs to this single disk farm
sourcepub fn scrub(
directory: &Path,
disable_farm_locking: bool,
target: ScrubTarget,
dry_run: bool,
) -> Result<(), SingleDiskFarmScrubError>
pub fn scrub( directory: &Path, disable_farm_locking: bool, target: ScrubTarget, dry_run: bool, ) -> Result<(), SingleDiskFarmScrubError>
Check the farm for corruption and repair errors (caused by disk errors or something else), returns an error when irrecoverable errors occur.
Trait Implementations§
source§impl Debug for SingleDiskFarm
impl Debug for SingleDiskFarm
source§impl Drop for SingleDiskFarm
impl Drop for SingleDiskFarm
source§impl Farm for SingleDiskFarm
impl Farm for SingleDiskFarm
source§fn total_sectors_count(&self) -> SectorIndex
fn total_sectors_count(&self) -> SectorIndex
source§fn plotted_sectors(&self) -> Arc<dyn PlottedSectors + 'static>
fn plotted_sectors(&self) -> Arc<dyn PlottedSectors + 'static>
source§fn piece_reader(&self) -> Arc<dyn PieceReader + 'static>
fn piece_reader(&self) -> Arc<dyn PieceReader + 'static>
source§fn on_sector_update(
&self,
callback: HandlerFn<(SectorIndex, SectorUpdate)>,
) -> Box<dyn HandlerId>
fn on_sector_update( &self, callback: HandlerFn<(SectorIndex, SectorUpdate)>, ) -> Box<dyn HandlerId>
source§fn on_farming_notification(
&self,
callback: HandlerFn<FarmingNotification>,
) -> Box<dyn HandlerId>
fn on_farming_notification( &self, callback: HandlerFn<FarmingNotification>, ) -> Box<dyn HandlerId>
source§fn on_solution(
&self,
callback: HandlerFn<SolutionResponse>,
) -> Box<dyn HandlerId>
fn on_solution( &self, callback: HandlerFn<SolutionResponse>, ) -> Box<dyn HandlerId>
Auto Trait Implementations§
impl !Freeze for SingleDiskFarm
impl !RefUnwindSafe for SingleDiskFarm
impl Send for SingleDiskFarm
impl !Sync for SingleDiskFarm
impl Unpin for SingleDiskFarm
impl !UnwindSafe for SingleDiskFarm
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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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>
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 more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.