hanzo-client 8.5.156

Generated client for the Hanzo API — every service, one crate.
Documentation
/*
 * Hanzo Cloud API
 *
 * The Hanzo Cloud API as a customer calls it: every operation under /v1/ except the operator's admin product, relay routes, legacy spellings and capabilities still reached by flag. Tagged by product: the first path segment after /v1/.
 *
 * The version of the OpenAPI document: v1
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct LeaderRow {
    /// CIHigh is the upper bound of that interval. Wilson rather than the normal approximation because the normal one produces bounds past 100 exactly where benchmark scores live — at 194/198 that is the top of the board, not a corner case.
    #[serde(rename = "ciHigh", skip_serializing_if = "Option::is_none")]
    pub ci_high: Option<f64>,
    /// CILow and CIHigh are the 95% Wilson interval on Measured, in percent. They are what makes the score comparable: at n=198 a 98% carries roughly ±2 points, so most differences at the top of a board are not distinguishable and a bare number implies a precision it does not have. Absent when there is no measurement.
    #[serde(rename = "ciLow", skip_serializing_if = "Option::is_none")]
    pub ci_low: Option<f64>,
    /// Claims is how many independent claims exist for this model on this benchmark. More than one means several sources reported it.
    #[serde(rename = "claims", skip_serializing_if = "Option::is_none")]
    pub claims: Option<i32>,
    /// published − measured (the arena signal)
    #[serde(rename = "gap", skip_serializing_if = "Option::is_none")]
    pub gap: Option<f64>,
    /// Mean is the unweighted average of every claim, which answers a different question from Published: what the field says on average, rather than what the vendor says about itself. With one claim the two are equal.
    #[serde(rename = "mean", skip_serializing_if = "Option::is_none")]
    pub mean: Option<f64>,
    /// hanzo-measured accuracy % (nil if unrun)
    #[serde(rename = "measured", skip_serializing_if = "Option::is_none")]
    pub measured: Option<f64>,
    /// MeasuredAt is when the run behind Measured was recorded.
    #[serde(rename = "measuredAt", skip_serializing_if = "Option::is_none")]
    pub measured_at: Option<String>,
    /// the model this row scores
    #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
    pub model: Option<String>,
    /// coverage — NEVER compare across different n
    #[serde(rename = "n", skip_serializing_if = "Option::is_none")]
    pub n: Option<i32>,
    /// how the vendor scored their claim: single-attempt, pass@k or agentic
    #[serde(rename = "protocol", skip_serializing_if = "Option::is_none")]
    pub protocol: Option<String>,
    /// provider-claimed % (nil if none)
    #[serde(rename = "published", skip_serializing_if = "Option::is_none")]
    pub published: Option<f64>,
    /// Run names the measurement Measured came from, and MeasuredAt is when it ran. A score with no date is not a fact about a model, it is a fact about a model on a day — and models change, so the date is what makes the number checkable rather than merely quoted.
    #[serde(rename = "run", skip_serializing_if = "Option::is_none")]
    pub run: Option<String>,
    /// Spread is the distance between the highest and lowest of them, nil when there is only one. It is the disagreement AMONG sources, which a single Published number cannot show — signal in the same way the published-minus-measured gap is.
    #[serde(rename = "spread", skip_serializing_if = "Option::is_none")]
    pub spread: Option<f64>,
}

impl LeaderRow {
    pub fn new() -> LeaderRow {
        LeaderRow {
            ci_high: None,
            ci_low: None,
            claims: None,
            gap: None,
            mean: None,
            measured: None,
            measured_at: None,
            model: None,
            n: None,
            protocol: None,
            published: None,
            run: None,
            spread: None,
        }
    }
}