Skip to main content

DpiTransfer

Struct DpiTransfer 

Source
pub struct DpiTransfer<'d, BUF: DmaTxBuffer, Dm: DriverMode> { /* private fields */ }
Expand description

Represents an ongoing (or potentially finished) transfer using the RGB LCD interface

Implementations§

Source§

impl<'d, BUF: DmaTxBuffer, Dm: DriverMode> DpiTransfer<'d, BUF, Dm>

Source

pub fn interrupts(&self) -> EnumSet<DpiInterrupt>

Available on crate feature unstable only.

Returns the asserted LCD interrupt sources for this transfer.

Each source is a latched flag, so repeated events before clearing are reported as one. This reads raw status and does not require interrupt listening to be enabled.

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Source

pub fn clear_interrupts(&self, interrupts: impl Into<EnumSet<DpiInterrupt>>)

Available on crate feature unstable only.

Clears the selected LCD interrupt sources.

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Source

pub fn is_done(&self) -> bool

Returns whether Self::wait will not block.

Source

pub fn stop(self) -> (Dpi<'d, Dm>, BUF::Final)

Stops this transfer on the spot and returns the peripheral and buffer.

Source

pub fn wait(self) -> (Result<(), DmaError>, Dpi<'d, Dm>, BUF::Final)

Waits for the transfer to finish and returns the peripheral and buffer.

If next_frame_en was specified as true in Dpi::send, this waits for a DMA error.

Source§

impl<BUF: DmaTxBuffer> DpiTransfer<'_, BUF, Blocking>

Source

pub fn wait_for_vsync(&mut self)

Available on crate feature unstable only.

Waits for a pending LCD VSYNC event and clears it.

If a VSYNC event is already pending, this returns immediately. The transfer must remain active for another VSYNC to occur. Clear DpiInterrupt::Vsync with Self::clear_interrupts first to wait for a fresh event.

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Source§

impl<BUF: DmaTxBuffer> DpiTransfer<'_, BUF, Async>

Source

pub async fn wait_for_vsync(&mut self)

Available on crate feature unstable only.

Waits for the next pending LCD VSYNC event and clears it.

If a VSYNC event is already pending, this returns immediately. The transfer must remain active for another VSYNC to occur. Clear DpiInterrupt::Vsync with Self::clear_interrupts first to wait for a fresh event.

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Trait Implementations§

Source§

impl<BUF: DmaTxBuffer, Dm: DriverMode> Deref for DpiTransfer<'_, BUF, Dm>

Available on crate feature unstable only.
Source§

type Target = <BUF as DmaTxBuffer>::View

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<BUF: DmaTxBuffer, Dm: DriverMode> DerefMut for DpiTransfer<'_, BUF, Dm>

Available on crate feature unstable only.
Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<BUF: DmaTxBuffer, Dm: DriverMode> Drop for DpiTransfer<'_, BUF, Dm>

Available on crate feature unstable only.
Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl<'d, BUF, Dm> !RefUnwindSafe for DpiTransfer<'d, BUF, Dm>

§

impl<'d, BUF, Dm> !UnwindSafe for DpiTransfer<'d, BUF, Dm>

§

impl<'d, BUF, Dm> Freeze for DpiTransfer<'d, BUF, Dm>
where <BUF as DmaTxBuffer>::View: Freeze,

§

impl<'d, BUF, Dm> Send for DpiTransfer<'d, BUF, Dm>
where <BUF as DmaTxBuffer>::View: Send, Dm: Send,

§

impl<'d, BUF, Dm> Sync for DpiTransfer<'d, BUF, Dm>
where <BUF as DmaTxBuffer>::View: Sync, Dm: Sync,

§

impl<'d, BUF, Dm> Unpin for DpiTransfer<'d, BUF, Dm>
where <BUF as DmaTxBuffer>::View: Unpin, Dm: Unpin,

§

impl<'d, BUF, Dm> UnsafeUnpin for DpiTransfer<'d, BUF, Dm>
where <BUF as DmaTxBuffer>::View: UnsafeUnpin,

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CryptoRng for T
where T: DerefMut, <T as Deref>::Target: CryptoRng,

Source§

impl<R> CryptoRng for R
where R: TryCryptoRng<Error = Infallible> + ?Sized,

§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<R> Rng for R
where R: TryRng<Error = Infallible> + ?Sized,

Source§

fn next_u32(&mut self) -> u32

Return the next random u32.
Source§

fn next_u64(&mut self) -> u64

Return the next random u64.
Source§

fn fill_bytes(&mut self, dst: &mut [u8])

Fill dest with random data. Read more
Source§

impl<T> RngCore for T
where T: DerefMut, <T as Deref>::Target: RngCore,

Source§

fn next_u32(&mut self) -> u32

Return the next random u32. Read more
Source§

fn next_u64(&mut self) -> u64

Return the next random u64. Read more
Source§

fn fill_bytes(&mut self, dst: &mut [u8])

Fill dest with random data. Read more
Source§

impl<R> RngCore for R
where R: Rng,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<R> TryCryptoRng for R
where R: CryptoRng + ?Sized,

Source§

impl<R> TryCryptoRng for R
where R: DerefMut, <R as Deref>::Target: TryCryptoRng,

§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.
Source§

impl<R> TryRng for R
where R: DerefMut, <R as Deref>::Target: TryRng,

Source§

type Error = <<R as Deref>::Target as TryRng>::Error

The type returned in the event of a RNG error. Read more
Source§

fn try_next_u32(&mut self) -> Result<u32, <R as TryRng>::Error>

Return the next random u32.
Source§

fn try_next_u64(&mut self) -> Result<u64, <R as TryRng>::Error>

Return the next random u64.
Source§

fn try_fill_bytes(&mut self, dst: &mut [u8]) -> Result<(), <R as TryRng>::Error>

Fill dst entirely with random data.
Source§

impl<R> TryRngCore for R
where R: RngCore + ?Sized,

Source§

type Error = Infallible

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

fn try_next_u32(&mut self) -> Result<u32, <R as TryRngCore>::Error>

Return the next random u32.
Source§

fn try_next_u64(&mut self) -> Result<u64, <R as TryRngCore>::Error>

Return the next random u64.
Source§

fn try_fill_bytes( &mut self, dst: &mut [u8], ) -> Result<(), <R as TryRngCore>::Error>

Fill dest entirely with random data.
Source§

fn unwrap_err(self) -> UnwrapErr<Self>
where Self: Sized,

Wrap RNG with the UnwrapErr wrapper.
Source§

fn unwrap_mut(&mut self) -> UnwrapMut<'_, Self>

Wrap RNG with the UnwrapMut wrapper.
Source§

impl<R> TryRngCore for R
where R: TryRng,

Source§

type Error = <R as TryRng>::Error

👎Deprecated since 0.10.0:

use TryRng instead

Error type.