[−][src]Struct spectrusty::peripherals::storage::microdrives::MicroCartridge
This struct represents an emulated Microdrive tape cartridge.
It consist of up to MAX_SECTORS Sectors. Instances of this struct can be "inserted" into one of 8 ZxMicrodrives's emulator drives.
Implementations
impl MicroCartridge
[src]
pub fn head_at(&self) -> f32
[src]
Returns the current drive's head position counted in sectors as floating point value.
The fractional part indicates how far the head position is within a sector.
pub fn max_sectors(&self) -> usize
[src]
Returns the number of the emulated physical sectors on the tape.
pub fn count_formatted(&self) -> usize
[src]
Returns the number of formatted sectors.
pub fn iter_with_indices(
&self
) -> FilterMap<Enumerate<Zip<Iter<'_, Sector>, Iter<'_, Lsb0, u32>>>, &dyn Fn((usize, (&Sector, BitRef<'_, Const, Lsb0, u32>)))>
[src]
&self
) -> FilterMap<Enumerate<Zip<Iter<'_, Sector>, Iter<'_, Lsb0, u32>>>, &dyn Fn((usize, (&Sector, BitRef<'_, Const, Lsb0, u32>)))>
Returns an iterator of formatted sectors with their original indices.
pub fn is_write_protected(&self) -> bool
[src]
Returns true
if the cartridge is write protected.
pub fn set_write_protected(&mut self, protect: bool)
[src]
Changes the write protected flag of the cartridge.
pub fn is_sector_formatted(&self, sector: u8) -> bool
[src]
Returns true
if the given sector
is formatted.
Panics
Panics if sector
equals to or is above the max_sectors
limit.
pub fn new_with_sectors<S>(
sectors: S,
write_protect: bool,
max_sectors: usize
) -> MicroCartridge where
S: Into<Vec<Sector, Global>>,
[src]
sectors: S,
write_protect: bool,
max_sectors: usize
) -> MicroCartridge where
S: Into<Vec<Sector, Global>>,
Creates a new instance of MicroCartridge with provided sectors.
Note
Content of the sectors is not verified and is assumed to be properly formatted.
Panics
The number of sectors provided must not be greater than MAX_USABLE_SECTORS.
max_sectors
must not be 0 and must be grater or equal to the number of provided sectors and
must not be greater than MAX_SECTORS.
pub fn new(max_sectors: usize) -> MicroCartridge
[src]
Creates a new instance of MicroCartridge with custom max_sectors
number.
Panics
max_sectors
must not be 0 and must not be greater than MAX_SECTORS.
Trait Implementations
impl Clone for MicroCartridge
[src]
pub fn clone(&self) -> MicroCartridge
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for MicroCartridge
[src]
impl Default for MicroCartridge
[src]
pub fn default() -> MicroCartridge
[src]
impl<'de> Deserialize<'de> for MicroCartridge
[src]
pub fn deserialize<__D>(
__deserializer: __D
) -> Result<MicroCartridge, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
[src]
__deserializer: __D
) -> Result<MicroCartridge, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
impl Index<u8> for MicroCartridge
[src]
type Output = Sector
The returned type after indexing.
pub fn index(&self, index: u8) -> &<MicroCartridge as Index<u8>>::Output
[src]
impl IndexMut<u8> for MicroCartridge
[src]
impl<'a> IntoIterator for &'a mut MicroCartridge
[src]
Iterates through formatted sectors.
type Item = &'a mut Sector
The type of the elements being iterated over.
type IntoIter = FilterMap<Zip<IterMut<'a, Sector>, Iter<'a, Lsb0, u32>>, &'a (dyn Fn((&'a mut Sector, BitRef<'a, Const, Lsb0, u32>)) + 'a)>
Which kind of iterator are we turning this into?
pub fn into_iter(self) -> <&'a mut MicroCartridge as IntoIterator>::IntoIter
[src]
impl<'a> IntoIterator for &'a MicroCartridge
[src]
Iterates through formatted sectors.
type Item = &'a Sector
The type of the elements being iterated over.
type IntoIter = FilterMap<Zip<Iter<'a, Sector>, Iter<'a, Lsb0, u32>>, &'a (dyn Fn((&'a Sector, BitRef<'a, Const, Lsb0, u32>)) + 'a)>
Which kind of iterator are we turning this into?
pub fn into_iter(self) -> <&'a MicroCartridge as IntoIterator>::IntoIter
[src]
impl MicroCartridgeExt for MicroCartridge
[src]
pub fn file_info<S>(
&self,
file_name: S
) -> Result<Option<CatFile>, MdrValidationError> where
S: AsRef<[u8]>,
[src]
&self,
file_name: S
) -> Result<Option<CatFile>, MdrValidationError> where
S: AsRef<[u8]>,
pub fn file_type<S>(
&self,
file_name: S
) -> Result<Option<CatFileType>, MdrValidationError> where
S: AsRef<[u8]>,
[src]
&self,
file_name: S
) -> Result<Option<CatFileType>, MdrValidationError> where
S: AsRef<[u8]>,
pub fn file_to_tap_writer<S, W>(
&self,
file_name: S,
wr: &mut TapChunkWriter<W>
) -> Result<bool, Error> where
S: AsRef<[u8]>,
W: Write + Seek,
[src]
&self,
file_name: S,
wr: &mut TapChunkWriter<W>
) -> Result<bool, Error> where
S: AsRef<[u8]>,
W: Write + Seek,
pub fn file_from_tap_reader<R>(
&mut self,
rd: &mut TapChunkReader<R>
) -> Result<u8, Error> where
R: Read + Seek,
[src]
&mut self,
rd: &mut TapChunkReader<R>
) -> Result<u8, Error> where
R: Read + Seek,
pub fn retrieve_file<S, W>(
&self,
file_name: S,
wr: W
) -> Result<Option<(CatFileType, usize)>, Error> where
S: AsRef<[u8]>,
W: Write,
[src]
&self,
file_name: S,
wr: W
) -> Result<Option<(CatFileType, usize)>, Error> where
S: AsRef<[u8]>,
W: Write,
pub fn store_file<S, R>(
&mut self,
file_name: S,
is_save: bool,
rd: R
) -> Result<u8, Error> where
R: Read,
S: AsRef<[u8]>,
[src]
&mut self,
file_name: S,
is_save: bool,
rd: R
) -> Result<u8, Error> where
R: Read,
S: AsRef<[u8]>,
pub fn erase_file<S>(&mut self, file_name: S) -> u8 where
S: AsRef<[u8]>,
[src]
S: AsRef<[u8]>,
pub fn file_sector_ids_unordered<S>(
&self,
file_name: S
) -> FileSectorIdsUnordIter<'_> where
S: AsRef<[u8]>,
[src]
&self,
file_name: S
) -> FileSectorIdsUnordIter<'_> where
S: AsRef<[u8]>,
pub fn file_sectors<S>(&self, file_name: S) -> FileSectorIter<'_> where
S: AsRef<[u8]>,
[src]
S: AsRef<[u8]>,
pub fn catalog(&self) -> Result<Option<Catalog>, MdrValidationError>
[src]
pub fn catalog_name(&self) -> Result<Option<Cow<'_, str>>, MdrValidationError>
[src]
pub fn validate_sectors(&self) -> Result<usize, MdrValidationError>
[src]
pub fn count_sectors_in_use(&self) -> usize
[src]
pub fn from_mdr<R>(rd: R, max_sectors: usize) -> Result<MicroCartridge, Error> where
R: Read,
[src]
R: Read,
pub fn write_mdr<W>(&self, wr: W) -> Result<usize, Error> where
W: Write,
[src]
W: Write,
pub fn new_formatted<S>(max_sectors: usize, catalog_name: S) -> MicroCartridge where
S: AsRef<[u8]>,
[src]
S: AsRef<[u8]>,
impl Serialize for MicroCartridge
[src]
pub fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
[src]
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
Auto Trait Implementations
impl RefUnwindSafe for MicroCartridge
[src]
impl Send for MicroCartridge
[src]
impl Sync for MicroCartridge
[src]
impl Unpin for MicroCartridge
[src]
impl UnwindSafe for MicroCartridge
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Conv for T
impl<T> Conv for T
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> FmtForward for T
pub fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
Self: Binary,
pub fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
Self: Display,
pub fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
Self: LowerExp,
pub fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
Self: LowerHex,
pub fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
Self: Octal,
pub fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
Self: Pointer,
pub fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
Self: UpperExp,
pub fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
Self: UpperHex,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<S, T> IntoSample<S> for T where
S: FromSample<T>,
[src]
S: FromSample<T>,
pub fn into_sample(self) -> S
[src]
impl<T> Pipe for T where
T: ?Sized,
T: ?Sized,
pub fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
pub fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
R: 'a,
pub fn pipe_ref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self) -> R
) -> R where
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut Self) -> R
) -> R where
R: 'a,
pub fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R where
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
pub fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
pub fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R where
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
pub fn pipe_as_mut<'a, U, R>(
&'a mut self,
func: impl FnOnce(&'a mut U) -> R
) -> R where
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut U) -> R
) -> R where
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
pub fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
pub fn pipe_deref_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: DerefMut<Target = T> + Deref,
T: 'a + ?Sized,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: DerefMut<Target = T> + Deref,
T: 'a + ?Sized,
R: 'a,
impl<T> Pipe for T
impl<T> PipeAsRef for T
pub fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
Self: AsRef<T>,
T: 'a,
R: 'a,
pub fn pipe_as_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
impl<T> PipeBorrow for T
pub fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
Self: Borrow<T>,
T: 'a,
R: 'a,
pub fn pipe_borrow_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
impl<T> PipeDeref for T
pub fn pipe_deref<'a, R>(
&'a self,
func: impl FnOnce(&'a Self::Target) -> R
) -> R where
Self: Deref,
R: 'a,
&'a self,
func: impl FnOnce(&'a Self::Target) -> R
) -> R where
Self: Deref,
R: 'a,
pub fn pipe_deref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
impl<T> PipeRef for T
pub fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
R: 'a,
pub fn pipe_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R where
R: 'a,
R: 'a,
impl<T> Tap for T
pub fn tap(self, func: impl FnOnce(&Self)) -> Self
pub fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self
pub fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Self: Borrow<B>,
B: ?Sized,
pub fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Self: BorrowMut<B>,
B: ?Sized,
pub fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Self: AsRef<R>,
R: ?Sized,
pub fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Self: AsMut<R>,
R: ?Sized,
pub fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
Self: Deref<Target = T>,
T: ?Sized,
pub fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
pub fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
pub fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
pub fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Self: Borrow<B>,
B: ?Sized,
pub fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Self: BorrowMut<B>,
B: ?Sized,
pub fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Self: AsRef<R>,
R: ?Sized,
pub fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Self: AsMut<R>,
R: ?Sized,
pub fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
Self: Deref<Target = T>,
T: ?Sized,
pub fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
impl<T> Tap for T
pub fn tap<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
F: FnOnce(&Self) -> R,
pub fn tap_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
F: FnOnce(&Self) -> R,
pub fn tap_mut<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
F: FnOnce(&mut Self) -> R,
pub fn tap_mut_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
F: FnOnce(&mut Self) -> R,
impl<T, U> TapAsRef<U> for T where
U: ?Sized,
U: ?Sized,
pub fn tap_ref<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Self: AsRef<T>,
F: FnOnce(&T) -> R,
pub fn tap_ref_dbg<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Self: AsRef<T>,
F: FnOnce(&T) -> R,
pub fn tap_ref_mut<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
pub fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
impl<T, U> TapBorrow<U> for T where
U: ?Sized,
U: ?Sized,
pub fn tap_borrow<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Self: Borrow<T>,
F: FnOnce(&T) -> R,
pub fn tap_borrow_dbg<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Self: Borrow<T>,
F: FnOnce(&T) -> R,
pub fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
pub fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
impl<T> TapDeref for T
pub fn tap_deref<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Self: Deref,
F: FnOnce(&Self::Target) -> R,
pub fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Self: Deref,
F: FnOnce(&Self::Target) -> R,
pub fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
pub fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> TryConv for T
impl<T> TryConv for T
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,