chore: rename Numeric generic parameter to Number so that it's a noun and not mistakeable for a trait

This commit is contained in:
J / Jacob Babich
2026-07-15 01:00:50 -04:00
parent 8b966c1210
commit cb216d0a0a
3 changed files with 23 additions and 25 deletions

View File

@@ -4,12 +4,12 @@ use super::InputNumberMode;
#[derive(Debug, FromPyObject)] #[derive(Debug, FromPyObject)]
#[pyo3(from_item_all)] #[pyo3(from_item_all)]
pub struct InputNumberAttributes<Numeric> { pub struct InputNumberAttributes<Number> {
initial: Option<Numeric>, initial: Option<Number>,
editable: bool, editable: bool,
min: Numeric, min: Number,
max: Numeric, max: Number,
step: Numeric, step: Number,
mode: InputNumberMode, mode: InputNumberMode,
// todo: CustomUnitOfMeasurement type? probably not? // todo: CustomUnitOfMeasurement type? probably not?
unit_of_measurement: Option<String>, unit_of_measurement: Option<String>,

View File

@@ -34,16 +34,14 @@ pub enum CreateSignalError {
pub fn signal< pub fn signal<
'py, 'py,
Numeric: 'static + uom::num::Num + Clone + Send + Sync + FromStr + for<'a, 'py2> FromPyObject<'a, 'py2>, Number: 'static + uom::num::Num + Clone + Send + Sync + FromStr + for<'a, 'py2> FromPyObject<'a, 'py2>,
>( >(
py: Python<'py>, py: Python<'py>,
home_assistant: &'py HomeAssistant, home_assistant: &'py HomeAssistant,
object_id: ObjectId, object_id: ObjectId,
) -> Result< ) -> Result<
( (
Signal< Signal<Option<Arc<Result<HomeAssistantState<Number>, StateObjectSignalError<Arc<PyErr>>>>>>,
Option<Arc<Result<HomeAssistantState<Numeric>, StateObjectSignalError<Arc<PyErr>>>>>,
>,
impl Future<Output = Result<(), emitter_and_signal::signal::JoinError>>, impl Future<Output = Result<(), emitter_and_signal::signal::JoinError>>,
), ),
CreateSignalError, CreateSignalError,
@@ -51,8 +49,8 @@ pub fn signal<
let entity_id = EntityId(Domain::InputNumber, object_id); let entity_id = EntityId(Domain::InputNumber, object_id);
let (signal, task1) = StateObject::< let (signal, task1) = StateObject::<
HomeAssistantState<Numeric>, HomeAssistantState<Number>,
InputNumberAttributes<Numeric>, InputNumberAttributes<Number>,
Py<PyAny>, Py<PyAny>,
>::signal(py, home_assistant, entity_id) >::signal(py, home_assistant, entity_id)
.context(StateObjectSignalSnafu)?; .context(StateObjectSignalSnafu)?;

View File

@@ -51,7 +51,7 @@ pub enum CreateSignalError {
}, },
} }
pub fn signal<'py, V>( pub fn signal<'py, Number>(
py: Python<'py>, py: Python<'py>,
home_assistant: &'py HomeAssistant, home_assistant: &'py HomeAssistant,
object_id: ObjectId, object_id: ObjectId,
@@ -60,7 +60,7 @@ pub fn signal<'py, V>(
Signal< Signal<
Option< Option<
Result< Result<
HomeAssistantState<uom::si::quantities::Power<V>>, HomeAssistantState<uom::si::quantities::Power<Number>>,
StateObjectSignalError<Arc<PyErr>>, StateObjectSignalError<Arc<PyErr>>,
>, >,
>, >,
@@ -70,22 +70,22 @@ pub fn signal<'py, V>(
CreateSignalError, CreateSignalError,
> >
where where
V: 'static + uom::num::Num + Clone + Send + Sync + FromStr, Number: 'static + uom::num::Num + Clone + Send + Sync + FromStr,
V: uom::num::Num + uom::Conversion<V, T = V>, Number: uom::num::Num + uom::Conversion<Number, T = Number>,
milliwatt: Conversion<V, T = V>, milliwatt: Conversion<Number, T = Number>,
watt: Conversion<V, T = V>, watt: Conversion<Number, T = Number>,
kilowatt: Conversion<V, T = V>, kilowatt: Conversion<Number, T = Number>,
megawatt: Conversion<V, T = V>, megawatt: Conversion<Number, T = Number>,
gigawatt: Conversion<V, T = V>, gigawatt: Conversion<Number, T = Number>,
terawatt: Conversion<V, T = V>, terawatt: Conversion<Number, T = Number>,
btu: Conversion<V, T = V>, btu: Conversion<Number, T = Number>,
hour: Conversion<V, T = V>, hour: Conversion<Number, T = Number>,
SI<V>: Units<V>, SI<Number>: Units<Number>,
{ {
let entity_id = EntityId(Domain::Sensor, object_id); let entity_id = EntityId(Domain::Sensor, object_id);
let (signal, task1) = let (signal, task1) =
StateObject::<HomeAssistantState<V>, PowerSensorAttributes, Py<PyAny>>::signal( StateObject::<HomeAssistantState<Number>, PowerSensorAttributes, Py<PyAny>>::signal(
py, py,
home_assistant, home_assistant,
entity_id, entity_id,