pub struct KeyResult {
pub id: Uuid,
pub okr_id: Uuid,
pub title: String,
pub description: String,
pub target_value: f64,
pub current_value: f64,
pub unit: String,
pub metric_type: KrMetricType,
pub status: KeyResultStatus,
pub outcomes: Vec<KrOutcome>,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}Expand description
A measurable key result within an OKR
Fields§
§id: UuidUnique identifier for this key result
okr_id: UuidParent OKR ID
title: StringHuman-readable title
description: StringDetailed description
target_value: f64Target value (numeric for percentage/count metrics)
current_value: f64Current value (progress)
unit: StringUnit of measurement (e.g., “%”, “count”, “files”, “tests”)
metric_type: KrMetricTypeType of metric
status: KeyResultStatusCurrent status
outcomes: Vec<KrOutcome>Evidence/outcomes linked to this KR
created_at: DateTime<Utc>Creation timestamp
updated_at: DateTime<Utc>Last update timestamp
Implementations§
Source§impl KeyResult
impl KeyResult
Sourcepub fn new(
okr_id: Uuid,
title: impl Into<String>,
target_value: f64,
unit: impl Into<String>,
) -> Self
pub fn new( okr_id: Uuid, title: impl Into<String>, target_value: f64, unit: impl Into<String>, ) -> Self
Create a new key result
Sourcepub fn validate(&self) -> Result<(), OkrValidationError>
pub fn validate(&self) -> Result<(), OkrValidationError>
Validate the key result
Sourcepub fn is_complete(&self) -> bool
pub fn is_complete(&self) -> bool
Check if the key result is complete
Sourcepub fn add_outcome(&mut self, outcome: KrOutcome)
pub fn add_outcome(&mut self, outcome: KrOutcome)
Add an outcome to this key result
Sourcepub fn update_progress(&mut self, value: f64)
pub fn update_progress(&mut self, value: f64)
Update current value and recalculate status
Trait Implementations§
Source§impl<'de> Deserialize<'de> for KeyResult
impl<'de> Deserialize<'de> for KeyResult
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for KeyResult
impl RefUnwindSafe for KeyResult
impl Send for KeyResult
impl Sync for KeyResult
impl Unpin for KeyResult
impl UnwindSafe for KeyResult
Blanket Implementations§
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more