X Tutup

Scld

Struct Scld 

Source
pub struct Scld<M: PagedMemory8k, B, X, V> { /* private fields */ }
Expand description

This is the emulator of SCLD chip used with Timex’s TC2048 / TC2068 / TS2068 models.

The generic type M must implement PagedMemory8k trait in addition to ZxMemory.

See Ula for description of other generic parameters.

Trait Implementations§

Source§

impl<A, M, B, X, V> AudioFrame<A> for Scld<M, B, X, V>
where A: Blep, M: PagedMemory8k, Ula<M, B, X, V>: AudioFrame<A>,

Source§

fn ensure_audio_frame_time(&self, blep: &mut A, sample_rate: u32, cpu_hz: f64)

Sets up the Blep time rate and ensures there is enough room for the single frame’s audio data. Read more
Source§

fn get_audio_frame_end_time(&self) -> FTs

Returns a timestamp to be passed to Blep to end the frame. Read more
Source§

fn end_audio_frame(&self, blep: &mut B) -> usize

Calls Blep::end_frame to finalize the frame and prepare it for rendition. Read more
Source§

impl<A, M, B, X, V> AyAudioFrame<A> for Scld<M, B, X, V>

Source§

fn render_ay_audio_frame<L: AmpLevels<A::SampleDelta>>( &mut self, blep: &mut A, chans: [usize; 3], )

Renders square-wave pulses via Blep interface. Read more
Source§

impl<M: Clone + PagedMemory8k, B: Clone, X: Clone, V: Clone> Clone for Scld<M, B, X, V>

Source§

fn clone(&self) -> Scld<M, B, X, V>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<M, B, X, V> ControlUnit for Scld<M, B, X, V>

Source§

type BusDevice = B

A type of a chain of emulated peripheral devices should be declared here. Read more
Source§

fn bus_device_mut(&mut self) -> &mut Self::BusDevice

Returns a mutable reference to the instance of the first bus device in the device chain.
Source§

fn bus_device_ref(&self) -> &Self::BusDevice

Returns a reference to the the instance of the first bus device in the device chain.
Source§

fn into_bus_device(self) -> Self::BusDevice

Destructs self and returns the instance of the bus device.
Source§

fn reset<C: Cpu>(&mut self, cpu: &mut C, hard: bool)

Performs a system reset. Read more
Source§

fn nmi<C: Cpu>(&mut self, cpu: &mut C) -> bool

Triggers a non-maskable interrupt. Returns true if NMI was accepted. Read more
Source§

fn execute_next_frame<C: Cpu>(&mut self, cpu: &mut C)

Conditionally prepares the internal state for the next frame and executes instructions on the cpu as fast as possible, until the near end of that frame.
Source§

fn ensure_next_frame(&mut self)

Conditionally prepares the internal state for the next frame, advances the frame counter, and wraps the T-state counter if it is near the end of a frame. Read more
Source§

fn execute_single_step<C: Cpu, F: FnOnce(CpuDebug)>( &mut self, cpu: &mut C, debug: Option<F>, ) -> Result<(), ()>

Executes a single instruction on the cpu with the option to pass a debugging function. Read more
Source§

impl<M, B, X, V> Debug for Scld<M, B, X, V>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<M, B, X, V> Default for Scld<M, B, X, V>
where M: PagedMemory8k, V: VideoFrame, Ula<M, B, X, V>: Default,

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de, M: PagedMemory8k, B, X, V> Deserialize<'de> for Scld<M, B, X, V>
where Ula<M, B, X, V>: Deserialize<'de>, V: Default,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<M, B, X, V> EarIn for Scld<M, B, X, V>

Source§

fn set_ear_in(&mut self, ear_in: bool, delta_fts: u32)

Sets 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>,

Feeds the EAR IN buffer with changes. Read more
Source§

fn purge_ear_in_changes(&mut self, ear_in: bool)

Removes all buffered so far EAR IN changes. Read more
Source§

fn read_ear_in_count(&self) -> u32

Returns the counter of how many times the EAR input line was read since the beginning of the current frame. Read more
Source§

fn read_ear_mode(&self) -> ReadEarMode

Returns the current mode.
Source§

fn set_read_ear_mode(&mut self, mode: ReadEarMode)

Changes the current mode.
Source§

impl<A, M, B, X, F> EarInAudioFrame<A> for Scld<M, B, X, F>
where A: Blep, M: PagedMemory8k, F: VideoFrame,

Source§

fn render_ear_in_audio_frame<V: AmpLevels<A::SampleDelta>>( &self, blep: &mut A, channel: usize, )

Renders EAR input as square-wave pulses via Blep interface. Read more
Source§

impl<A, M, B, X, F> EarMicOutAudioFrame<A> for Scld<M, B, X, F>
where A: Blep, M: PagedMemory8k, F: VideoFrame,

Source§

fn render_earmic_out_audio_frame<V: AmpLevels<A::SampleDelta>>( &self, blep: &mut A, channel: usize, )

Renders EAR/MIC output as square-wave pulses via Blep interface. Read more
Source§

impl<M: PagedMemory8k, B, X> HostConfig for Scld<M, B, X, UlaVideoFrame>

Source§

const CPU_HZ: u32 = 3_500_000u32

The number of CPU cycles (T-states) per second.
Source§

const FRAME_TSTATES: FTs = 69_888i32

The number of CPU cycles (T-states) in a single execution frame.
Source§

fn effective_cpu_rate(multiplier: f64) -> f64

Returns the CPU rate (T-states / second) after multiplying it by the multiplier.
Source§

fn effective_frame_duration_nanos(multiplier: f64) -> u32

Returns the duration of a single execution frame in nanoseconds after multiplying the CPU rate by the multiplier.
Source§

fn effective_frame_duration(multiplier: f64) -> Duration

Returns the duration of a single execution frame after multiplying the CPU rate by the multiplier.
Source§

fn frame_duration_nanos() -> u32

Returns the duration of a single execution frame in nanoseconds.
Source§

fn frame_duration() -> Duration

Returns the duration of a single execution frame.
Source§

impl<M, B, X, V> InnerAccess for Scld<M, B, X, V>
where M: PagedMemory8k,

Source§

type Inner = Ula<M, B, X, V>

Source§

fn inner_ref(&self) -> &Self::Inner

Returns a reference to the inner chipset.
Source§

fn inner_mut(&mut self) -> &mut Self::Inner

Returns a mutable reference to the inner chipset.
Source§

fn into_inner(self) -> Self::Inner

Destructs self and returns the inner chipset.
Source§

impl<M, B, X, V> Io for Scld<M, B, X, V>

Source§

type Timestamp = VideoTs

This type is being used for timestamping I/O operations. See also Clock::Timestamp.
Source§

type WrIoBreak = ()

A value of this type is returned when a break is being requested by Io::write_io.
Source§

type RetiBreak = ()

A value of this type is returned when a break is being requested by Io::reti.
Source§

fn is_irq(&mut self, ts: VideoTs) -> bool

Should return true if the interrupt request signal - the INT line - is active. Read more
Source§

fn read_io(&mut self, port: u16, ts: VideoTs) -> (u8, Option<NonZeroU16>)

Called during the IO_IORQ cycle when executing one of the IN instructions. Read more
Source§

fn write_io( &mut self, port: u16, data: u8, ts: VideoTs, ) -> (Option<()>, Option<NonZeroU16>)

Called during the IO_IORQ cycle when executing one of the OUT instructions. Read more
Source§

fn irq_data( &mut self, pc: u16, timestamp: Self::Timestamp, ) -> (u8, Option<NonZero<u16>>)

Called during the INT_IORQ cycle when the maskable interrupt has been requested and accepted. Read more
Source§

fn reti( &mut self, address: u16, timestamp: Self::Timestamp, ) -> Option<Self::RetiBreak>

When RETI instruction is being executed this method is being called to update the device implementation instance, so another interrupt signal can be set up if necessary. Read more
Source§

impl<M, B, X, V> KeyboardInterface for Scld<M, B, X, V>
where M: PagedMemory8k,

Source§

fn get_key_state(&self) -> ZXKeyboardMap

Reads the current state of the keyboard.
Source§

fn set_key_state(&mut self, keymap: ZXKeyboardMap)

Sets the state of the keyboard.
Source§

impl<M, B, X, V> Memory for Scld<M, B, X, V>

Source§

type Timestamp = VideoTs

This type is being used for timestamping memory operations. See also Clock::Timestamp.
Source§

fn read_debug(&self, addr: u16) -> u8

Should return a single byte read from the memory present at the given address. Read more
Source§

fn read_mem(&self, addr: u16, _ts: VideoTs) -> u8

Should return a single byte read from the memory present at the given address. Read more
Source§

fn read_mem16(&self, addr: u16, _ts: VideoTs) -> u16

Should return the unaligned, 2 consecutive bytes from the memory present at the given address as a 16-bit unsigned integer in a LE (least significant byte first) order. Read more
Source§

fn read_opcode(&mut self, pc: u16, _ir: u16, _ts: VideoTs) -> u8

Should return a single byte read from the memory present at the given pc address. Read more
Source§

fn write_mem(&mut self, addr: u16, val: u8, ts: VideoTs)

Should write a byte value into the memory at the given address. Read more
Source§

impl<M, B, X, V> MemoryAccess for Scld<M, B, X, V>

Source§

type Memory = M

Source§

type MemoryExt = X

Source§

fn memory_ext_ref(&self) -> &Self::MemoryExt

Returns a read-only reference to the memory extension.
Source§

fn memory_ext_mut(&mut self) -> &mut Self::MemoryExt

Returns a mutable reference to the memory extension.
Source§

fn memory_mut(&mut self) -> &mut Self::Memory

Returns a mutable reference to the memory.
Source§

fn memory_ref(&self) -> &Self::Memory

Returns a reference to the memory.
Source§

fn memory_with_ext_mut(&mut self) -> (&mut Self::Memory, &mut Self::MemoryExt)

Returns mutable references to both the memory and the memory extension.
Source§

impl<'a, M, B: 'a, X: 'a, V> MicOut<'a> for Scld<M, B, X, V>
where M: PagedMemory8k + 'a, V: VideoFrame + 'a,

Source§

type PulseIter = <Ula<M, B, X, V> as MicOut<'a>>::PulseIter

Source§

fn mic_out_pulse_iter(&'a self) -> Self::PulseIter

Returns a frame buffered MIC output as a pulse iterator.
Source§

impl<M, B, X, V> ScreenDataProvider for Scld<M, B, X, V>

Source§

fn get_screen_mode(&self) -> ScrMode

Should return a currently selected screen mode.
Source§

fn set_screen_mode(&mut self, mode: ScrMode) -> bool

Should set a requested screen mode and return true. If the provided mode can not be set this method should return false.
Source§

fn screen_primary_ref(&self) -> &ScreenArray

Should return a reference to the primary screen data.
Source§

fn screen_primary_mut(&mut self) -> &mut ScreenArray

Should return a mutable reference to the primary screen data.
Source§

fn screen_secondary_ref(&self) -> &ScreenArray

Should return a reference to the secondary screen data. Read more
Source§

fn screen_secondary_mut(&mut self) -> &mut ScreenArray

Should return a mutable reference to the secondary screen data. Read more
Source§

fn screen_palette_ref(&self) -> &[u8; 64]

Should return a reference to the ULAplus palette. Read more
Source§

fn screen_palette_mut(&mut self) -> &mut [u8; 64]

Should return a mutable reference to the ULAplus palette. Read more
Source§

impl<M: PagedMemory8k, B, X, V> Serialize for Scld<M, B, X, V>
where Ula<M, B, X, V>: Serialize,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<M, B, X, V> UlaControl for Scld<M, B, X, V>

Source§

fn has_late_timings(&self) -> bool

Returns the state of the “late timings” mode.
Source§

fn set_late_timings(&mut self, late_timings: bool)

Sets the “late timings” mode on or off. Read more
Source§

fn scld_ctrl_port_value(&self) -> Option<ScldCtrlFlags>

Returns the last value sent to the memory port 0xFF.
Source§

fn set_scld_ctrl_port_value(&mut self, value: ScldCtrlFlags) -> bool

Sets the current value of the memory port 0xFF. Returns true if supported. Otherwise, returns false and no writing is performed.
Source§

fn scld_mmu_port_value(&self) -> Option<u8>

Returns the last value sent to the memory port 0xF4.
Source§

fn set_scld_mmu_port_value(&mut self, value: u8) -> bool

Sets the current value of the memory port 0xF4. Returns true if supported. Otherwise, returns false and no writing is performed.
Source§

fn ula128_mem_port_value(&self) -> Option<Ula128MemFlags>

Returns the last value sent to the memory port 0x7FFD if supported.
Source§

fn set_ula128_mem_port_value(&mut self, _value: Ula128MemFlags) -> bool

Sets the current value of the memory port 0x7FFD. Returns true if supported. Otherwise, returns false and no writing is performed.
Source§

fn ula3_ctrl_port_value(&self) -> Option<Ula3CtrlFlags>

Returns the last value sent to the memory port 0x1FFD if supported.
Source§

fn set_ula3_ctrl_port_value(&mut self, _value: Ula3CtrlFlags) -> bool

Sets the current value of the memory port 0x1FFD. Returns true if supported. Otherwise, returns false and no writing is performed.
Source§

fn ulaplus_reg_port_value(&self) -> Option<UlaPlusRegFlags>

Returns the last value sent to the register port 0xBF3B.
Source§

fn set_ulaplus_reg_port_value(&mut self, _value: UlaPlusRegFlags) -> bool

Sets the current value of the memory port 0xBF3B. Returns true if supported. Otherwise, returns false and no writing is performed.
Source§

fn ulaplus_data_port_value(&self) -> Option<u8>

Returns the last value sent to the data port 0xFF3B.
Source§

fn set_ulaplus_data_port_value(&mut self, _value: u8) -> bool

Sets the current value of the memory port 0xFF3B. Returns true if supported. Otherwise, returns false and no writing is performed.
Source§

impl<M, B, X, V> UlaControlExt for Scld<M, B, X, V>

Source§

fn prepare_next_frame<C: MemoryContention>( &mut self, vtsc: VFrameTsCounter<V, C>, ) -> VFrameTsCounter<V, C>

This method is used by wrappers with a different contention scheme.
Source§

fn ensure_next_frame_vtsc( &mut self, ) -> VFrameTsCounter<Self::VideoFrame, Self::Contention>

Source§

impl<M, D, X, V> Video for Scld<M, D, X, V>

Source§

const PIXEL_DENSITY: u32 = 2u32

The horizontal pixel density. Read more
Source§

type VideoFrame = V

The type implementing VideoFrame, that is being used by the chipset emulator.
Source§

type Contention = UlaMemoryContention

The type implementing MemoryContention, that is being used by the chipset emulator.
Source§

fn border_color(&self) -> BorderColor

Returns the current border color.
Source§

fn set_border_color(&mut self, border: BorderColor)

Force sets the border area to the given color.
Source§

fn render_video_frame<'a, B: PixelBuffer<'a>, P: Palette<Pixel = B::Pixel>>( &mut self, buffer: &'a mut [u8], pitch: usize, border_size: BorderSize, )

Renders last emulated frame’s video data into the provided pixel buffer. Read more
Source§

fn current_video_ts(&self) -> VideoTs

Returns the current value of the video T-state counter.
Source§

fn current_video_clock( &self, ) -> VFrameTsCounter<Self::VideoFrame, Self::Contention>

Returns the current value of the video T-state clock.
Source§

fn set_video_ts(&mut self, vts: VideoTs)

Modifies the current value of the video T-state counter.
Source§

fn flash_state(&self) -> bool

Returns the temporary video flash attribute state.
Source§

fn render_size_pixels(border_size: BorderSize) -> (u32, u32)

Returns rendered screen pixel size (horizontal, vertical), including the border area, measured in pixels depending on Video::PIXEL_DENSITY. Read more
Source§

fn pixel_density() -> u32

Returns the horizontal pixel density.
Source§

fn visible_screen_bank(&self) -> usize

Returns the screen bank index of the currently visible screen. Read more

Auto Trait Implementations§

§

impl<M, B, X, V> Freeze for Scld<M, B, X, V>
where M: Freeze, B: Freeze, X: Freeze,

§

impl<M, B, X, V> RefUnwindSafe for Scld<M, B, X, V>

§

impl<M, B, X, V> Send for Scld<M, B, X, V>
where M: Send, B: Send, X: Send, V: Send,

§

impl<M, B, X, V> Sync for Scld<M, B, X, V>
where M: Sync, B: Sync, X: Sync, V: Sync,

§

impl<M, B, X, V> Unpin for Scld<M, B, X, V>
where M: Unpin, B: Unpin, X: Unpin, V: Unpin,

§

impl<M, B, X, V> UnwindSafe for Scld<M, B, X, V>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<U, I> FrameState for U
where U: InnerAccess<Inner = I>, I: FrameState,

Source§

fn current_frame(&self) -> u64

Returns the value of the current execution frame counter. The FrameState implementation should count passing frames infinitely wrapping at 2^64.
Source§

fn set_frame_counter(&mut self, fc: u64)

Sets the frame counter to the specified value.
Source§

fn frame_tstate(&self) -> (u64, i32)

Returns a normalized frame counter and a T-state counter as a tuple. Read more
Source§

fn current_tstate(&self) -> i32

Returns the current value of the T-state counter. Read more
Source§

fn set_frame_tstate(&mut self, ts: i32)

Sets the T-state counter to the specified value modulo <Self as Video>::FRAME_TSTATES_COUNT.
Source§

fn is_frame_over(&self) -> bool

Returns 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.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<S, T> IntoSample<S> for T
where S: FromSample<T>,

Source§

fn into_sample(self) -> S

Convert to S a sample type from self.
Source§

impl<T> LoadScr for T

Source§

fn load_scr<R>(&mut self, src: R) -> Result<(), Error>
where R: Read + Seek,

Attempts to read the SCR file from the src and load it into the underlying implementation. Read more
Source§

fn save_scr<W>(&self, dst: W) -> Result<(), Error>
where W: Write,

Attempts to save the screen from the underlying implementation and write as the SCR file into the dst. Read more
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

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,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

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,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

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,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

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,

Borrows self, then passes self.deref() into the pipe function.
Source§

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,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<B, U> UlaAudioFrame<B> for U

Source§

impl<U> UlaCommon for U

X Tutup