Struct spectrusty::chip::plus::UlaPlus
source · pub struct UlaPlus<U: Video> { /* private fields */ }
Implementations§
source§impl<'a, U> UlaPlus<U>where
U: UlaPlusInner<'a>,
impl<'a, U> UlaPlus<U>where
U: UlaPlusInner<'a>,
sourcepub fn can_read_scld_mode(&mut self) -> bool
pub fn can_read_scld_mode(&mut self) -> bool
Returns true
if reading the 0xFF
port returns the previous write or false
if bus data is being read.
sourcepub fn enable_reading_scld_mode(&mut self, enable_reading: bool)
pub fn enable_reading_scld_mode(&mut self, enable_reading: bool)
Determines if reading the 0xFF
port returns the previous write or bus data.
sourcepub fn is_ulaplus_enabled(&self) -> bool
pub fn is_ulaplus_enabled(&self) -> bool
Returns true
if ULAplus modes and ports are enabled or false
otherwise.
sourcepub fn enable_ulaplus_modes(&mut self, enable: bool)
pub fn enable_ulaplus_modes(&mut self, enable: bool)
Controls the ULAplus ports and graphics availability.
When disabled, ULAplus ports become available to the underlying devices and the screen and color modes are being reset to the default. However, palette entries are left unmodified. The last register port value written is also left unmodified.
When enabled, ULAplus ports become responsive again but the screen mode is not restored unless it has
been previously written to 0xFF
port. In this instance the screen mode gets restored from the last
value written to 0xFF
port. The color mode is always being restored.
sourcepub fn render_mode(&self) -> RenderMode
pub fn render_mode(&self) -> RenderMode
Returns the current rendering mode.
sourcepub fn source_mode(&self) -> SourceMode
pub fn source_mode(&self) -> SourceMode
Returns the current source mode.
sourcepub fn ulaplus_palette(&self) -> &UlaPlusPalette
pub fn ulaplus_palette(&self) -> &UlaPlusPalette
Returns the current palette view.
sourcepub fn ulaplus_palette_mut(&mut self) -> &mut UlaPlusPalette
pub fn ulaplus_palette_mut(&mut self) -> &mut UlaPlusPalette
Returns the mutable reference to the current palette.
Trait Implementations§
source§impl<A, U> AudioFrame<A> for UlaPlus<U>where
A: Blep,
U: Video + AudioFrame<A>,
impl<A, U> AudioFrame<A> for UlaPlus<U>where
A: Blep,
U: Video + AudioFrame<A>,
source§fn get_audio_frame_end_time(&self) -> FTs
fn get_audio_frame_end_time(&self) -> FTs
source§fn end_audio_frame(&self, blep: &mut B) -> usize
fn end_audio_frame(&self, blep: &mut B) -> usize
source§impl<A, U> AyAudioFrame<A> for UlaPlus<U>where
A: Blep,
U: Video + AyAudioFrame<A>,
impl<A, U> AyAudioFrame<A> for UlaPlus<U>where
A: Blep,
U: Video + AyAudioFrame<A>,
source§fn render_ay_audio_frame<V: AmpLevels<A::SampleDelta>>(
&mut self,
blep: &mut A,
chans: [usize; 3]
)
fn render_ay_audio_frame<V: AmpLevels<A::SampleDelta>>(
&mut self,
blep: &mut A,
chans: [usize; 3]
)
source§impl<U, B, X> ControlUnit for UlaPlus<U>where
U: for<'a> UlaPlusInner<'a> + ControlUnit<BusDevice = B> + UlaControlExt + MemoryAccess<MemoryExt = X> + Memory<Timestamp = VideoTs> + Io<Timestamp = VideoTs, WrIoBreak = (), RetiBreak = ()>,
B: BusDevice,
B::Timestamp: From<VFrameTs<U::VideoFrame>>,
X: MemoryExtension,
impl<U, B, X> ControlUnit for UlaPlus<U>where
U: for<'a> UlaPlusInner<'a> + ControlUnit<BusDevice = B> + UlaControlExt + MemoryAccess<MemoryExt = X> + Memory<Timestamp = VideoTs> + Io<Timestamp = VideoTs, WrIoBreak = (), RetiBreak = ()>,
B: BusDevice,
B::Timestamp: From<VFrameTs<U::VideoFrame>>,
X: MemoryExtension,
§type BusDevice = <U as ControlUnit>::BusDevice
type BusDevice = <U as ControlUnit>::BusDevice
source§fn bus_device_mut(&mut self) -> &mut Self::BusDevice
fn bus_device_mut(&mut self) -> &mut Self::BusDevice
source§fn bus_device_ref(&self) -> &Self::BusDevice
fn bus_device_ref(&self) -> &Self::BusDevice
source§fn into_bus_device(self) -> Self::BusDevice
fn into_bus_device(self) -> Self::BusDevice
source§fn nmi<C: Cpu>(&mut self, cpu: &mut C) -> bool
fn nmi<C: Cpu>(&mut self, cpu: &mut C) -> bool
true
if NMI was accepted. Read moresource§fn execute_next_frame<C: Cpu>(&mut self, cpu: &mut C)
fn execute_next_frame<C: Cpu>(&mut self, cpu: &mut C)
cpu
as fast as possible, until the near end of that frame. Read moresource§fn ensure_next_frame(&mut self)
fn ensure_next_frame(&mut self)
source§impl<'de, U> Deserialize<'de> for UlaPlus<U>where
U: Deserialize<'de> + Video,
impl<'de, U> Deserialize<'de> for UlaPlus<U>where
U: Deserialize<'de> + Video,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl<U> EarIn for UlaPlus<U>where
U: Video + EarIn,
impl<U> EarIn for UlaPlus<U>where
U: Video + EarIn,
source§fn set_ear_in(&mut self, ear_in: bool, delta_fts: u32)
fn set_ear_in(&mut self, ear_in: bool, delta_fts: u32)
EAR IN
bit state after the provided interval in ∆ T-states counted from the last recorded change.source§fn feed_ear_in<I>(&mut self, fts_deltas: I, max_frames_threshold: Option<usize>)where
I: Iterator<Item = NonZeroU32>,
fn feed_ear_in<I>(&mut self, fts_deltas: I, max_frames_threshold: Option<usize>)where
I: Iterator<Item = NonZeroU32>,
EAR IN
buffer with changes. Read moresource§fn purge_ear_in_changes(&mut self, ear_in: bool)
fn purge_ear_in_changes(&mut self, ear_in: bool)
EAR IN
changes. Read moresource§fn read_ear_in_count(&self) -> u32
fn read_ear_in_count(&self) -> u32
source§fn read_ear_mode(&self) -> ReadEarMode
fn read_ear_mode(&self) -> ReadEarMode
source§fn set_read_ear_mode(&mut self, mode: ReadEarMode)
fn set_read_ear_mode(&mut self, mode: ReadEarMode)
source§impl<A, U> EarInAudioFrame<A> for UlaPlus<U>where
A: Blep,
U: Video + EarInAudioFrame<A>,
impl<A, U> EarInAudioFrame<A> for UlaPlus<U>where
A: Blep,
U: Video + EarInAudioFrame<A>,
source§fn render_ear_in_audio_frame<V: AmpLevels<A::SampleDelta>>(
&self,
blep: &mut A,
channel: usize
)
fn render_ear_in_audio_frame<V: AmpLevels<A::SampleDelta>>(
&self,
blep: &mut A,
channel: usize
)
source§impl<A, U> EarMicOutAudioFrame<A> for UlaPlus<U>where
A: Blep,
U: Video + EarMicOutAudioFrame<A>,
impl<A, U> EarMicOutAudioFrame<A> for UlaPlus<U>where
A: Blep,
U: Video + EarMicOutAudioFrame<A>,
source§fn render_earmic_out_audio_frame<V: AmpLevels<A::SampleDelta>>(
&self,
blep: &mut A,
channel: usize
)
fn render_earmic_out_audio_frame<V: AmpLevels<A::SampleDelta>>(
&self,
blep: &mut A,
channel: usize
)
source§impl<U: HostConfig + Video> HostConfig for UlaPlus<U>
impl<U: HostConfig + Video> HostConfig for UlaPlus<U>
source§const FRAME_TSTATES: FTs = U::FRAME_TSTATES
const FRAME_TSTATES: FTs = U::FRAME_TSTATES
source§fn effective_cpu_rate(multiplier: f64) -> f64
fn effective_cpu_rate(multiplier: f64) -> f64
multiplier
.source§fn effective_frame_duration_nanos(multiplier: f64) -> u32
fn effective_frame_duration_nanos(multiplier: f64) -> u32
multiplier
. Read moresource§fn effective_frame_duration(multiplier: f64) -> Duration
fn effective_frame_duration(multiplier: f64) -> Duration
multiplier
. Read moresource§fn frame_duration_nanos() -> u32
fn frame_duration_nanos() -> u32
source§fn frame_duration() -> Duration
fn frame_duration() -> Duration
source§impl<U> InnerAccess for UlaPlus<U>where
U: Video,
impl<U> InnerAccess for UlaPlus<U>where
U: Video,
source§impl<'a, U> Io for UlaPlus<U>where
U: UlaPlusInner<'a> + Io<Timestamp = VideoTs, WrIoBreak = (), RetiBreak = ()>,
impl<'a, U> Io for UlaPlus<U>where
U: UlaPlusInner<'a> + Io<Timestamp = VideoTs, WrIoBreak = (), RetiBreak = ()>,
§type Timestamp = VideoTs
type Timestamp = VideoTs
§type WrIoBreak = ()
type WrIoBreak = ()
source§fn write_io(
&mut self,
port: u16,
data: u8,
ts: VideoTs
) -> (Option<()>, Option<NonZeroU16>)
fn write_io(
&mut self,
port: u16,
data: u8,
ts: VideoTs
) -> (Option<()>, Option<NonZeroU16>)
source§impl<U> KeyboardInterface for UlaPlus<U>where
U: Video + KeyboardInterface,
impl<U> KeyboardInterface for UlaPlus<U>where
U: Video + KeyboardInterface,
source§fn get_key_state(&self) -> ZXKeyboardMap
fn get_key_state(&self) -> ZXKeyboardMap
source§fn set_key_state(&mut self, keymap: ZXKeyboardMap)
fn set_key_state(&mut self, keymap: ZXKeyboardMap)
source§impl<'a, U> Memory for UlaPlus<U>where
U: UlaPlusInner<'a> + Memory<Timestamp = VideoTs>,
impl<'a, U> Memory for UlaPlus<U>where
U: UlaPlusInner<'a> + Memory<Timestamp = VideoTs>,
§type Timestamp = VideoTs
type Timestamp = VideoTs
source§fn read_debug(&self, addr: u16) -> u8
fn read_debug(&self, addr: u16) -> u8
address
. Read moresource§fn read_mem(&self, addr: u16, ts: VideoTs) -> u8
fn read_mem(&self, addr: u16, ts: VideoTs) -> u8
address
. Read moresource§fn read_mem16(&self, addr: u16, ts: VideoTs) -> u16
fn read_mem16(&self, addr: u16, ts: VideoTs) -> u16
address
as a 16-bit unsigned integer in a LE
(least significant byte first) order. Read moresource§impl<U> MemoryAccess for UlaPlus<U>where
U: Video + MemoryAccess,
impl<U> MemoryAccess for UlaPlus<U>where
U: Video + MemoryAccess,
type Memory = <U as MemoryAccess>::Memory
type MemoryExt = <U as MemoryAccess>::MemoryExt
source§fn memory_ext_ref(&self) -> &Self::MemoryExt
fn memory_ext_ref(&self) -> &Self::MemoryExt
source§fn memory_ext_mut(&mut self) -> &mut Self::MemoryExt
fn memory_ext_mut(&mut self) -> &mut Self::MemoryExt
source§fn memory_mut(&mut self) -> &mut Self::Memory
fn memory_mut(&mut self) -> &mut Self::Memory
source§fn memory_ref(&self) -> &Self::Memory
fn memory_ref(&self) -> &Self::Memory
source§fn memory_with_ext_mut(&mut self) -> (&mut Self::Memory, &mut Self::MemoryExt)
fn memory_with_ext_mut(&mut self) -> (&mut Self::Memory, &mut Self::MemoryExt)
source§impl<'a, U> ScreenDataProvider for UlaPlus<U>where
U: UlaPlusInner<'a>,
Self: Video,
impl<'a, U> ScreenDataProvider for UlaPlus<U>where
U: UlaPlusInner<'a>,
Self: Video,
source§fn get_screen_mode(&self) -> ScrMode
fn get_screen_mode(&self) -> ScrMode
source§fn set_screen_mode(&mut self, mode: ScrMode) -> bool
fn set_screen_mode(&mut self, mode: ScrMode) -> bool
mode
and return true
.
If the provided mode
can not be set this method should return false
. Read moresource§fn screen_primary_ref(&self) -> &ScreenArray
fn screen_primary_ref(&self) -> &ScreenArray
source§fn screen_primary_mut(&mut self) -> &mut ScreenArray
fn screen_primary_mut(&mut self) -> &mut ScreenArray
source§fn screen_secondary_ref(&self) -> &ScreenArray
fn screen_secondary_ref(&self) -> &ScreenArray
source§fn screen_secondary_mut(&mut self) -> &mut ScreenArray
fn screen_secondary_mut(&mut self) -> &mut ScreenArray
source§impl<'a, U> UlaControl for UlaPlus<U>where
U: UlaControl + UlaPlusInner<'a>,
impl<'a, U> UlaControl for UlaPlus<U>where
U: UlaControl + UlaPlusInner<'a>,
source§fn has_late_timings(&self) -> bool
fn has_late_timings(&self) -> bool
source§fn set_late_timings(&mut self, late_timings: bool)
fn set_late_timings(&mut self, late_timings: bool)
source§fn ula128_mem_port_value(&self) -> Option<Ula128MemFlags>
fn ula128_mem_port_value(&self) -> Option<Ula128MemFlags>
0x7FFD
if supported.source§fn set_ula128_mem_port_value(&mut self, value: Ula128MemFlags) -> bool
fn set_ula128_mem_port_value(&mut self, value: Ula128MemFlags) -> bool
0x7FFD
. Returns true
if supported.
Otherwise, returns false
and no writing is performed. Read moresource§fn ula3_ctrl_port_value(&self) -> Option<Ula3CtrlFlags>
fn ula3_ctrl_port_value(&self) -> Option<Ula3CtrlFlags>
0x1FFD
if supported.source§fn set_ula3_ctrl_port_value(&mut self, value: Ula3CtrlFlags) -> bool
fn set_ula3_ctrl_port_value(&mut self, value: Ula3CtrlFlags) -> bool
0x1FFD
. Returns true
if supported.
Otherwise, returns false
and no writing is performed. Read moresource§fn scld_ctrl_port_value(&self) -> Option<ScldCtrlFlags>
fn scld_ctrl_port_value(&self) -> Option<ScldCtrlFlags>
0xFF
.source§fn set_scld_ctrl_port_value(&mut self, value: ScldCtrlFlags) -> bool
fn set_scld_ctrl_port_value(&mut self, value: ScldCtrlFlags) -> bool
0xFF
. Returns true
if supported.
Otherwise, returns false
and no writing is performed. Read moresource§fn scld_mmu_port_value(&self) -> Option<u8>
fn scld_mmu_port_value(&self) -> Option<u8>
0xF4
.source§fn set_scld_mmu_port_value(&mut self, value: u8) -> bool
fn set_scld_mmu_port_value(&mut self, value: u8) -> bool
0xF4
. Returns true
if supported.
Otherwise, returns false
and no writing is performed. Read moresource§fn ulaplus_reg_port_value(&self) -> Option<UlaPlusRegFlags>
fn ulaplus_reg_port_value(&self) -> Option<UlaPlusRegFlags>
0xBF3B
.source§fn set_ulaplus_reg_port_value(&mut self, value: UlaPlusRegFlags) -> bool
fn set_ulaplus_reg_port_value(&mut self, value: UlaPlusRegFlags) -> bool
0xBF3B
. Returns true
if supported.
Otherwise, returns false
and no writing is performed. Read moresource§fn ulaplus_data_port_value(&self) -> Option<u8>
fn ulaplus_data_port_value(&self) -> Option<u8>
0xFF3B
.source§impl<U> UlaControlExt for UlaPlus<U>where
U: for<'a> UlaPlusInner<'a> + ControlUnit + UlaControlExt,
impl<U> UlaControlExt for UlaPlus<U>where
U: for<'a> UlaPlusInner<'a> + ControlUnit + UlaControlExt,
source§fn prepare_next_frame<C: MemoryContention>(
&mut self,
vtsc: VFrameTsCounter<U::VideoFrame, C>
) -> VFrameTsCounter<U::VideoFrame, C>
fn prepare_next_frame<C: MemoryContention>(
&mut self,
vtsc: VFrameTsCounter<U::VideoFrame, C>
) -> VFrameTsCounter<U::VideoFrame, C>
fn ensure_next_frame_vtsc(
&mut self
) -> VFrameTsCounter<Self::VideoFrame, Self::Contention>
source§impl<U> Video for UlaPlus<U>where
U: for<'a> UlaPlusInner<'a>,
impl<U> Video for UlaPlus<U>where
U: for<'a> UlaPlusInner<'a>,
source§const PIXEL_DENSITY: u32 = 2u32
const PIXEL_DENSITY: u32 = 2u32
§type VideoFrame = <U as Video>::VideoFrame
type VideoFrame = <U as Video>::VideoFrame
§type Contention = <U as Video>::Contention
type Contention = <U as Video>::Contention
source§fn border_color(&self) -> BorderColor
fn border_color(&self) -> BorderColor
source§fn set_border_color(&mut self, border: BorderColor)
fn set_border_color(&mut self, border: BorderColor)
source§fn render_video_frame<'b, B: PixelBuffer<'b>, P: Palette<Pixel = B::Pixel>>(
&mut self,
buffer: &'b mut [u8],
pitch: usize,
border_size: BorderSize
)
fn render_video_frame<'b, B: PixelBuffer<'b>, P: Palette<Pixel = B::Pixel>>(
&mut self,
buffer: &'b mut [u8],
pitch: usize,
border_size: BorderSize
)
buffer
. Read moresource§fn current_video_ts(&self) -> VideoTs
fn current_video_ts(&self) -> VideoTs
source§fn visible_screen_bank(&self) -> usize
fn visible_screen_bank(&self) -> usize
source§fn current_video_clock(
&self
) -> VFrameTsCounter<Self::VideoFrame, Self::Contention>
fn current_video_clock(
&self
) -> VFrameTsCounter<Self::VideoFrame, Self::Contention>
source§fn set_video_ts(&mut self, vts: VideoTs)
fn set_video_ts(&mut self, vts: VideoTs)
source§fn flash_state(&self) -> bool
fn flash_state(&self) -> bool
source§fn render_size_pixels(border_size: BorderSize) -> (u32, u32)
fn render_size_pixels(border_size: BorderSize) -> (u32, u32)
source§fn pixel_density() -> u32
fn pixel_density() -> u32
Auto Trait Implementations§
impl<U> RefUnwindSafe for UlaPlus<U>where
U: RefUnwindSafe,
<U as Video>::VideoFrame: RefUnwindSafe,
impl<U> Send for UlaPlus<U>where
U: Send,
<U as Video>::VideoFrame: Send,
impl<U> Sync for UlaPlus<U>where
U: Sync,
<U as Video>::VideoFrame: Sync,
impl<U> Unpin for UlaPlus<U>where
U: Unpin,
impl<U> UnwindSafe for UlaPlus<U>where
U: UnwindSafe,
<U as Video>::VideoFrame: UnwindSafe,
Blanket Implementations§
§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,
§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
§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,
§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
source§impl<U, I> FrameState for Uwhere
U: InnerAccess<Inner = I>,
I: FrameState,
impl<U, I> FrameState for Uwhere
U: InnerAccess<Inner = I>,
I: FrameState,
source§fn current_frame(&self) -> u64
fn current_frame(&self) -> u64
source§fn set_frame_counter(&mut self, fc: u64)
fn set_frame_counter(&mut self, fc: u64)
source§fn frame_tstate(&self) -> (u64, i32)
fn frame_tstate(&self) -> (u64, i32)
source§fn current_tstate(&self) -> i32
fn current_tstate(&self) -> i32
source§fn set_frame_tstate(&mut self, ts: i32)
fn set_frame_tstate(&mut self, ts: i32)
<Self as Video>::FRAME_TSTATES_COUNT
.source§fn is_frame_over(&self) -> bool
fn is_frame_over(&self) -> bool
true
if the value of the current T-state counter has reached a certain arbitrary limit which
is very close to the maximum number of T-states per frame. Read moresource§impl<S, T> IntoSample<S> for Twhere
S: FromSample<T>,
impl<S, T> IntoSample<S> for Twhere
S: FromSample<T>,
source§fn into_sample(self) -> S
fn into_sample(self) -> S
S
a sample type from self
.source§impl<T> LoadScr for Twhere
T: ScreenDataProvider,
impl<T> LoadScr for Twhere
T: ScreenDataProvider,
§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) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
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) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
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. Read more§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
.tap_borrow()
only in debug builds, and is erased in release
builds. Read more§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
.tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read more§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
.tap_ref()
only in debug builds, and is erased in release
builds. Read more§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more