use serde::{Deserialize, Serialize};
use serde_json::Value;
pub type Observed = (Vec<Value>, Vec<String>);
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ObserveRequest {
pub url: String,
pub instruction: String,
}
#[derive(Debug, Clone, PartialEq, Serialize)]
pub struct ObserveResponse {
pub success: bool,
pub data: Vec<Value>,
pub warnings: Vec<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SimilarRequest {
pub url: String,
pub selector: String,
#[serde(default)]
pub engine: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize)]
pub struct SimilarItem {
pub text: String,
pub html: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize)]
pub struct SimilarData {
pub selector: Option<String>,
pub depth: Option<usize>,
pub items: Vec<SimilarItem>,
}
#[derive(Debug, Clone, PartialEq, Serialize)]
pub struct SimilarResponse {
pub success: bool,
pub data: SimilarData,
pub warnings: Vec<String>,
}