parlov-core
Shared types for HTTP oracle detection. Zero I/O, zero async — just data structures.
types
use ;
ResponseSurface — one captured HTTP interaction:
ProbeDefinition — one HTTP request to execute:
ProbeSet — paired surfaces for differential analysis:
OracleResult — the analysis output:
label, leaks, and rfc_basis are None for NotPresent results. They use #[serde(skip_serializing_if = "Option::is_none", default)] — omitted from JSON when absent, and backward-compatible when deserializing older data.
All types derive Serialize and Deserialize with custom serde helpers for StatusCode, Method, and HeaderMap (the http crate types lack native serde support).
use it
Construct a probe set from captured HTTP interactions:
use ;
use Bytes;
use ;
let baseline = ResponseSurface ;
let probe = ResponseSurface ;
let probe_set = ProbeSet ;
Build a request definition for the probe engine:
use ProbeDefinition;
use ;
let def = ProbeDefinition ;
errors
use Error;
Three variants via thiserror: Http(String), Analysis(String), Serialization(serde_json::Error).
license
MIT OR Apache-2.0