hd44780_controller/command/
clear_display.rs

1use crate::device::*;
2
3use super::*;
4
5#[derive(Clone, PartialEq, Eq, Debug)]
6pub struct ClearDisplay;
7
8impl SyncCommand for ClearDisplay {
9    type Ret = ();
10
11    type Err = super::Error;
12
13    fn execute<D: SyncDevice + ?Sized>(&self, dev: &mut D) -> Result<Self::Ret, Self::Err> {
14        dev.write_byte(RegisterSelectMode::Command, 0x01)
15            .map_err(|_| super::Error::DeviceError)?;
16        dev.delay_us(2000);
17        Ok(())
18    }
19}
20
21#[cfg(feature = "async")]
22#[cfg_attr(docsrs, doc(cfg(feature = "async")))]
23impl AsyncCommand for ClearDisplay {
24    type Ret = ();
25
26    type Err = super::Error;
27
28    async fn execute_async<D: AsyncDevice + ?Sized>(
29        &self,
30        dev: &mut D,
31    ) -> Result<Self::Ret, Self::Err> {
32        dev.write_byte_async(RegisterSelectMode::Command, 0x01)
33            .await
34            .map_err(|_| super::Error::DeviceError)?;
35        dev.delay_us_async(2000).await;
36        Ok(())
37    }
38}