pub struct FitnessFunction {
pub id: Uuid,
pub workspace_id: Uuid,
pub name: String,
pub kind: String,
pub config: Value,
pub last_evaluated_at: Option<DateTime<Utc>>,
pub last_status: Option<String>,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}Fields§
§id: Uuid§workspace_id: Uuid§name: String§kind: String§config: Value§last_evaluated_at: Option<DateTime<Utc>>§last_status: Option<String>§created_at: DateTime<Utc>§updated_at: DateTime<Utc>Implementations§
Source§impl FitnessFunction
impl FitnessFunction
pub const VALID_KINDS: &'static [&'static str]
pub fn is_valid_kind(s: &str) -> bool
pub async fn list_by_workspace( pool: &Pool<Postgres>, workspace_id: Uuid, ) -> Result<Vec<FitnessFunction>, Error>
pub async fn find_by_id( pool: &Pool<Postgres>, id: Uuid, ) -> Result<Option<FitnessFunction>, Error>
pub async fn create( pool: &Pool<Postgres>, workspace_id: Uuid, name: &str, kind: &str, config: &Value, ) -> Result<FitnessFunction, Error>
pub async fn delete(pool: &Pool<Postgres>, id: Uuid) -> Result<bool, Error>
Sourcepub async fn update(
pool: &Pool<Postgres>,
id: Uuid,
name: &str,
kind: &str,
config: &Value,
) -> Result<Option<FitnessFunction>, Error>
pub async fn update( pool: &Pool<Postgres>, id: Uuid, name: &str, kind: &str, config: &Value, ) -> Result<Option<FitnessFunction>, Error>
Replace the mutable fields (name, kind, config) on an existing
fitness function. Returns Ok(None) if the row doesn’t exist
rather than erroring — caller can map that to a 404. Bumps
updated_at (no DB trigger covers this column on the table).
Sourcepub async fn record_evaluation(
pool: &Pool<Postgres>,
function_id: Uuid,
status: &str,
measured_value: Option<f64>,
threshold_value: Option<f64>,
) -> Result<(), Error>
pub async fn record_evaluation( pool: &Pool<Postgres>, function_id: Uuid, status: &str, measured_value: Option<f64>, threshold_value: Option<f64>, ) -> Result<(), Error>
Persist a per-evaluation row + roll up last_evaluated_at /
last_status on the parent function in one transaction.
Called by mirror_kind_status when a kind='fitness_evaluation'
test_run finishes — the run’s summary carries the values
pulled into measured_value / threshold_value. status must
be one of pass | fail | unknown. The history row in
fitness_evaluations is append-only; the last_* columns
give the UI a fast read for the “last run” widget without
scanning the timeline.
Trait Implementations§
Source§impl Clone for FitnessFunction
impl Clone for FitnessFunction
Source§fn clone(&self) -> FitnessFunction
fn clone(&self) -> FitnessFunction
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FitnessFunction
impl Debug for FitnessFunction
Source§impl<'de> Deserialize<'de> for FitnessFunction
impl<'de> Deserialize<'de> for FitnessFunction
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<FitnessFunction, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<FitnessFunction, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<'a, R> FromRow<'a, R> for FitnessFunctionwhere
R: Row,
&'a str: ColumnIndex<R>,
Uuid: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
String: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
Value: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
Option<DateTime<Utc>>: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
Option<String>: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
DateTime<Utc>: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
impl<'a, R> FromRow<'a, R> for FitnessFunctionwhere
R: Row,
&'a str: ColumnIndex<R>,
Uuid: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
String: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
Value: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
Option<DateTime<Utc>>: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
Option<String>: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
DateTime<Utc>: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
Source§impl Serialize for FitnessFunction
impl Serialize for FitnessFunction
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for FitnessFunction
impl RefUnwindSafe for FitnessFunction
impl Send for FitnessFunction
impl Sync for FitnessFunction
impl Unpin for FitnessFunction
impl UnsafeUnpin for FitnessFunction
impl UnwindSafe for FitnessFunction
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.