pub struct ScheduleRef {
pub at: Option<String>,
pub snapshot_ref: Option<SnapshotReference>,
pub timezone: Option<String>,
pub jitter: Option<String>,
}Expand description
A pinned schedule slot and (optionally) the Snapshot it created.
Fields§
§at: Option<String>The RFC3339 instant this slot fired (or is scheduled to); also accepts the scheduledAt alias.
snapshot_ref: Option<SnapshotReference>The Snapshot CR this slot produced, when one was created.
timezone: Option<String>The IANA timezone the cron was evaluated in when this slot was pinned. This
struct is shared by nextSchedule, lastSchedule and
lastSuccessfulSchedule, so the field appears on all three, but the
controller only ever WRITES it on nextSchedule — it is a property of a pin
the controller may still have to invalidate, not a record of a slot that
already fired. Recorded so the controller can detect an
effective-timezone change — a spec.schedule.timezone edit or a change to
the target repository’s scheduleDefaults.timezone — and invalidate the
pinned wall-clock slot, recomputing it in the new zone. Absent on legacy
pins written before this field existed (treated as “unchanged”).
jitter: Option<String>The deterministic jitter window (Go-style duration, e.g. 10m) the cron was
spread by when this slot was pinned. This struct is shared by nextSchedule,
lastSchedule and lastSuccessfulSchedule, so the field appears on all
three, but the controller only ever WRITES it on nextSchedule — it is a
property of a pin the controller may still have to invalidate, not a record
of a slot that already fired. Recorded for the
same reason as the pinned timezone: the window may be INHERITED from the
target repository’s scheduleDefaults.jitter, so a change to that default (or
to spec.schedule.jitter) must invalidate the pinned wall-clock slot and
recompute it in the new window — otherwise the edit would only take effect an
arbitrary slot later. Absent both when no jitter applies and on legacy pins
written before this field existed; an absent recorded window is treated as
“unchanged” so an upgrade never churns an established pin.
Trait Implementations§
Source§impl Clone for ScheduleRef
impl Clone for ScheduleRef
Source§fn clone(&self) -> ScheduleRef
fn clone(&self) -> ScheduleRef
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ScheduleRef
impl Debug for ScheduleRef
Source§impl Default for ScheduleRef
impl Default for ScheduleRef
Source§fn default() -> ScheduleRef
fn default() -> ScheduleRef
Source§impl<'de> Deserialize<'de> for ScheduleRef
impl<'de> Deserialize<'de> for ScheduleRef
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>,
impl Eq for ScheduleRef
Source§impl JsonSchema for ScheduleRef
impl JsonSchema for ScheduleRef
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for ScheduleRef
impl PartialEq for ScheduleRef
Source§fn eq(&self, other: &ScheduleRef) -> bool
fn eq(&self, other: &ScheduleRef) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for ScheduleRef
impl Serialize for ScheduleRef
impl StructuralPartialEq for ScheduleRef
Auto Trait Implementations§
impl Freeze for ScheduleRef
impl RefUnwindSafe for ScheduleRef
impl Send for ScheduleRef
impl Sync for ScheduleRef
impl Unpin for ScheduleRef
impl UnsafeUnpin for ScheduleRef
impl UnwindSafe for ScheduleRef
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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 more