pub struct CursorSnapshot {
pub plan: String,
pub auto_pct: i32,
pub api_pct: i32,
pub total_pct: i32,
pub unlimited: bool,
pub on_demand_enabled: bool,
pub reset_at: Option<DateTime<Utc>>,
}Expand description
Cursor — the two included-usage pools the dashboard shows, from the
undocumented cursor.com/api/usage-summary endpoint (the same one the
dashboard’s own frontend calls), authenticated with the session token the
Cursor IDE wrote to its local state.vscdb.
Since Cursor’s mid-2026 pricing, a plan’s included compute is split into two
quota pools, each shown as a percentage: Cursor Models (Auto + Composer,
autoPercentUsed) and Other Models (named / third-party, apiPercentUsed).
Overflow past either pool falls to on-demand spend. Percentages are integers
(rounded from the wire floats) to match the dashboard and every other
vendor’s integer-percent convention; they can exceed 100 when a pool is over
its included allowance.
Fields§
§plan: StringMembership label, title-cased from membershipType (e.g. “Ultra”).
auto_pct: i32“Cursor Models” pool — Auto + Composer (autoPercentUsed, rounded).
api_pct: i32“Other Models” pool — named / third-party (apiPercentUsed, rounded).
total_pct: i32Overall included usage (totalPercentUsed, rounded) — the dashboard’s
“you’ve used N% of your included total usage” headline.
unlimited: booltrue when the plan reports isUnlimited — the pools don’t cap and the
percentages are not meaningful.
on_demand_enabled: boolWhether on-demand (overage) spend is turned on (onDemand.enabled).
reset_at: Option<DateTime<Utc>>End of the current billing cycle (billingCycleEnd) — when the pools
reset.
Implementations§
Trait Implementations§
Source§impl Clone for CursorSnapshot
impl Clone for CursorSnapshot
Source§fn clone(&self) -> CursorSnapshot
fn clone(&self) -> CursorSnapshot
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 CursorSnapshot
impl Debug for CursorSnapshot
impl Eq for CursorSnapshot
Source§impl PartialEq for CursorSnapshot
impl PartialEq for CursorSnapshot
impl StructuralPartialEq for CursorSnapshot
Auto Trait Implementations§
impl Freeze for CursorSnapshot
impl RefUnwindSafe for CursorSnapshot
impl Send for CursorSnapshot
impl Sync for CursorSnapshot
impl Unpin for CursorSnapshot
impl UnsafeUnpin for CursorSnapshot
impl UnwindSafe for CursorSnapshot
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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>
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