pub fn update(&mut self, manager: &mut battery::Manager) -> Result<()> {
        manager.refresh(&mut self.battery)?;

        self.voltage
            .push(self.battery.voltage().get::<units::electric_potential::volt>());
        *self.voltage.battery_state() = self.battery.state();

        self.energy_rate
            .push(self.battery.energy_rate().get::<units::power::watt>());
        *self.energy_rate.battery_state() = self.battery.state();

        if let Some(temp) = self.battery.temperature() {
            let value = match self.config.units() {
                Units::Human => temp.get::<units::thermodynamic_temperature::degree_celsius>(),
                Units::Si => temp.get::<units::thermodynamic_temperature::kelvin>(),
            };
            self.temperature.push(value);
            *self.temperature.battery_state() = self.battery.state();
            self.temperature.enabled(true);
        } else {
            self.temperature.enabled(false);
        }

        Ok(())
    }
Update internal state, but do not re-draw it
src/app/ui/view.rs