Skip to main content

Volatility

Enum Volatility 

Source
pub enum Volatility {
    Stable,
    Grows,
    Rewritten,
}
Expand description

How much a region’s contents move between requests.

This exists because a provider caches by prefix: an entry is readable next time only when every byte in front of it is unchanged, so a block that moves invalidates everything behind it however stable that later content is. The arrangement that pays is stable content first and churn last.

A region’s RegionKind cannot answer this. A pinned region sounds immutable and is written constantly - context_write into a findings region is an ordinary move, and tool routing sends read results straight into one. A compact-history region sounds settled and gains an entry every time compaction fires. Inferring stability from the kind put churn at the front of the prefix and cost a measured 456,860 cache-write tokens against zero reads (issue #474).

So the blueprint says. The author knows whether a region is set once at spawn or written every turn, and nothing else does.

Variants§

§

Stable

Written rarely or never after setup: a task, a system prompt, a convention the run does not revise. Sorted to the front, where it forms the prefix everything else caches behind.

§

Grows

Appended to, with existing entries left alone: a findings list, a bibliography, a transcript of what has been read. Sorted after the stable content, and split into chunks so the settled head of it can be cached while only the tail is re-sent.

§

Rewritten

Existing content changes in place: a scratchpad, a key-value store whose keys are overwritten, anything rebuilt each turn. Sorted last, where it invalidates nothing but itself.

The default, and deliberately the pessimistic one: a blueprint that declares nothing must never be made worse by this, and an optimistic default is exactly how inferring stability from the kind went wrong.

Trait Implementations§

Source§

impl Clone for Volatility

Source§

fn clone(&self) -> Volatility

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Volatility

Source§

impl Debug for Volatility

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Volatility

Source§

fn default() -> Volatility

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Volatility

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for Volatility

Source§

impl PartialEq for Volatility

Source§

fn eq(&self, other: &Volatility) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for Volatility

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Volatility

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more