[−][src]Struct spectrusty_formats::tap::TapChunk
The TAP chunk.
Provides helper methods to interpret the underlying bytes as one of the TAP blocks. This should usually be a Header or a data block.
Anything that implements AsRef<[u8]>
can be used as T
(e.g. &[u8]
or Vec<u8>
).
Instances of TapChunk can be created using From/Into interface or via TapChunkIter.
Implementations
impl<T> TapChunk<T>
[src]
pub fn into_inner(self) -> T
[src]
Returns the underlying bytes container.
impl<T> TapChunk<T> where
T: AsRef<[u8]>,
[src]
T: AsRef<[u8]>,
pub fn info(&self) -> Result<TapChunkInfo>
[src]
Attempts to create an instance of TapChunkInfo from underlying data.
pub fn checksum(&self) -> u8
[src]
Calculates bit-xor checksum of underlying data.
pub fn is_head(&self) -> bool
[src]
Checks if this TAP chunk is a Header block.
pub fn is_data(&self) -> bool
[src]
Checks if this TAP chunk is a data block.
pub fn is_valid(&self) -> bool
[src]
Checks if this TAP chunk is a valid data or Header block.
pub fn validated(self) -> Result<Self>
[src]
Validates if this TAP chunk is a valid data or Header block returning self
on success.
pub fn validate(&self) -> Result<()>
[src]
Validates if this TAP chunk is a valid data or Header block.
pub fn name(&self) -> Option<Cow<'_, str>>
[src]
Returns a name if the block is a Header
pub fn data(&self) -> Option<&[u8]>
[src]
Returns a reference to the underlying data block only if the underlying bytes represents the data block.
The provided reference does not include block flag and checksum bytes.
pub fn data_block_len(&self) -> Option<u16>
[src]
Returns a length in bytes of the next chunk's data block only if the underlying bytes represents the Header block.
The provided length does not include block flag and checksum bytes.
pub fn start(&self) -> Option<u16>
[src]
Returns a starting address only if the underlying bytes represents the Header block.
Depending of the type of this header it may be either a starting address of BlockType::Code or starting line of BlockType::Program.
pub fn vars(&self) -> Option<u16>
[src]
Returns an offset to VARS
only if the underlying bytes represents the Header block.
Only valid for headers with BlockType::Program.
pub fn array_name(&self) -> Option<char>
[src]
Returns an array variable name only if the underlying bytes represents the Header block.
Only valid for headers with BlockType::CharArray or BlockType::NumberArray.
pub fn block_type(&self) -> Option<BlockType>
[src]
Returns a next chunk's data type only if the underlying bytes represents the Header block.
pub fn as_pulse_iter(&self) -> ReadEncPulseIter<Cursor<&[u8]>>ⓘNotable traits for ReadEncPulseIter<R>
impl<R: Read> Iterator for ReadEncPulseIter<R> type Item = NonZeroU32;
[src]
Notable traits for ReadEncPulseIter<R>
impl<R: Read> Iterator for ReadEncPulseIter<R> type Item = NonZeroU32;
Returns a pulse interval iterator referencing this TAP chunk.
pub fn into_pulse_iter(self) -> ReadEncPulseIter<Cursor<T>>ⓘNotable traits for ReadEncPulseIter<R>
impl<R: Read> Iterator for ReadEncPulseIter<R> type Item = NonZeroU32;
[src]
Notable traits for ReadEncPulseIter<R>
impl<R: Read> Iterator for ReadEncPulseIter<R> type Item = NonZeroU32;
Converts this TAP chunk into a pulse interval iterator owning this chunk's data.
pub fn with_storage<D>(self) -> TapChunk<D> where
D: From<T> + AsRef<[u8]>,
[src]
D: From<T> + AsRef<[u8]>,
Creates a new TapChunk with a specified storage, possibly cloning the data
unless the target storage can be converted to without cloning,
e.g. Vec<u8> <=> Box<[u8]>
.
Trait Implementations
impl<T> AsMut<[u8]> for TapChunk<T> where
T: AsMut<[u8]>,
[src]
T: AsMut<[u8]>,
impl<T> AsRef<[u8]> for TapChunk<T> where
T: AsRef<[u8]>,
[src]
T: AsRef<[u8]>,
impl<T: Clone> Clone for TapChunk<T>
[src]
impl<T: Copy> Copy for TapChunk<T>
[src]
impl<T: Debug> Debug for TapChunk<T>
[src]
impl<T> Display for TapChunk<T> where
T: AsRef<[u8]>,
[src]
T: AsRef<[u8]>,
impl<T> From<T> for TapChunk<T> where
T: AsRef<[u8]>,
[src]
T: AsRef<[u8]>,
Auto Trait Implementations
impl<T> RefUnwindSafe for TapChunk<T> where
T: RefUnwindSafe,
[src]
T: RefUnwindSafe,
impl<T> Send for TapChunk<T> where
T: Send,
[src]
T: Send,
impl<T> Sync for TapChunk<T> where
T: Sync,
[src]
T: Sync,
impl<T> Unpin for TapChunk<T> where
T: Unpin,
[src]
T: Unpin,
impl<T> UnwindSafe for TapChunk<T> where
T: UnwindSafe,
[src]
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<A, T> AsBits<T> for A where
T: BitStore + BitRegister,
A: AsRef<[T]>,
T: BitStore + BitRegister,
A: AsRef<[T]>,
pub fn as_bits<O>(&self) -> &BitSlice<O, T> where
O: BitOrder,
O: BitOrder,
impl<A, T> AsBits<T> for A where
T: BitStore + BitRegister,
A: AsRef<[T]>,
T: BitStore + BitRegister,
A: AsRef<[T]>,
pub fn as_bits<O>(&self) -> &BitSlice<O, T> where
O: BitOrder,
O: BitOrder,
impl<A, T> AsBitsMut<T> for A where
T: BitStore + BitRegister,
A: AsMut<[T]>,
T: BitStore + BitRegister,
A: AsMut<[T]>,
pub fn as_bits_mut<O>(&mut self) -> &mut BitSlice<O, T> where
O: BitOrder,
O: BitOrder,
impl<A, T> AsBitsMut<T> for A where
T: BitStore + BitRegister,
A: AsMut<[T]>,
T: BitStore + BitRegister,
A: AsMut<[T]>,
pub fn as_bits_mut<O>(&mut self) -> &mut BitSlice<O, T> where
O: BitOrder,
O: BitOrder,
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> 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>,
R: 'a,
B: 'a + ?Sized,
Self: Borrow<B>,
R: 'a,
B: 'a + ?Sized,
pub fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
R: 'a,
B: 'a + ?Sized,
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
R: 'a,
B: 'a + ?Sized,
pub fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R where
Self: AsRef<U>,
R: 'a,
U: 'a + ?Sized,
Self: AsRef<U>,
R: 'a,
U: 'a + ?Sized,
pub fn pipe_as_mut<'a, U, R>(
&'a mut self,
func: impl FnOnce(&'a mut U) -> R
) -> R where
Self: AsMut<U>,
R: 'a,
U: 'a + ?Sized,
&'a mut self,
func: impl FnOnce(&'a mut U) -> R
) -> R where
Self: AsMut<U>,
R: 'a,
U: 'a + ?Sized,
pub fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Deref<Target = T>,
R: 'a,
T: 'a + ?Sized,
Self: Deref<Target = T>,
R: 'a,
T: 'a + ?Sized,
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,
R: 'a,
T: 'a + ?Sized,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: DerefMut<Target = T> + Deref,
R: 'a,
T: 'a + ?Sized,
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>,
R: 'a,
T: 'a,
Self: AsRef<T>,
R: 'a,
T: 'a,
pub fn pipe_as_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
R: 'a,
T: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
R: 'a,
T: '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>,
R: 'a,
T: 'a,
Self: Borrow<T>,
R: 'a,
T: 'a,
pub fn pipe_borrow_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
R: 'a,
T: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
R: 'a,
T: '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> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
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>,