mod driver;
mod task;

use anyhow::Result;
use embedded_hal::digital::PinState;

pub trait Mcp23017 {
    fn init(&mut self) -> Result<()>;

    fn set_pin(&mut self, pin: u8, value: PinState) -> Result<()>;

    fn flush(&mut self) -> Result<()>;
}

pub use driver::Mcp23017Driver;
pub use task::Mcp23017State;
pub use task::Mcp23017Task;
