gproxy-protocol 3.0.0-alpha.0

GPROXY v3 protocol model: operation taxonomy, wire kinds, and the OperationSpec registry
Documentation
mod request;
mod response;
mod types;

pub use request::*;
pub use response::*;
pub use types::*;

#[cfg(test)]
mod tests {
    use super::*;
    use serde_json::json;

    #[test]
    fn video_models_round_trip_unknown_fields_and_variants() {
        let request = json!({
            "prompt":"continue",
            "seconds":"24",
            "video":{"id":"video_1", "future_ref":true},
            "future_request":1
        });
        let parsed: ExtendVideoRequest = serde_json::from_value(request.clone()).unwrap();
        assert_eq!(serde_json::to_value(parsed).unwrap(), request);

        let response = json!({
            "id":"video_1",
            "created_at":1,
            "model":"sora-future",
            "object":"video",
            "progress":42,
            "seconds":"24",
            "size":"2048x2048",
            "status":"paused",
            "future_response":{"x":1}
        });
        let parsed: Video = serde_json::from_value(response.clone()).unwrap();
        assert_eq!(serde_json::to_value(parsed).unwrap(), response);
    }
}