clip-search: fmt + clippy clamp + test AppState arg

Pulls cargo fmt + clippy pass over the new files only — pre-existing
files left untouched even though fmt has drift on them. clamp(1,200)
swaps a manual min/max chain that clippy flagged. test AppState
constructor needed ClipClient::new(None) so the lib-test target
compiles.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Cameron Cordes
2026-05-14 14:09:20 -04:00
parent 32195ed89e
commit 66267cc345
6 changed files with 34 additions and 26 deletions
+9 -10
View File
@@ -181,10 +181,7 @@ impl ClipClient {
/// Encode a natural-language query to an embedding. Used by the
/// search route to rank stored image embeddings by cosine sim.
pub async fn encode_text(
&self,
text: &str,
) -> std::result::Result<EncodeResponse, ClipError> {
pub async fn encode_text(&self, text: &str) -> std::result::Result<EncodeResponse, ClipError> {
let Some(base) = self.base_url.as_deref() else {
return Err(ClipError::Disabled);
};
@@ -206,9 +203,10 @@ impl ClipClient {
};
let status = resp.status();
if status.is_success() {
let body: EncodeResponse = resp.json().await.map_err(|e| {
ClipError::Transient(anyhow::anyhow!("clip response decode: {e}"))
})?;
let body: EncodeResponse = resp
.json()
.await
.map_err(|e| ClipError::Transient(anyhow::anyhow!("clip response decode: {e}")))?;
return Ok(body);
}
let body_text = resp.text().await.unwrap_or_default();
@@ -246,9 +244,10 @@ impl ClipClient {
};
let status = resp.status();
if status.is_success() {
let body: EncodeResponse = resp.json().await.map_err(|e| {
ClipError::Transient(anyhow::anyhow!("clip response decode: {e}"))
})?;
let body: EncodeResponse = resp
.json()
.await
.map_err(|e| ClipError::Transient(anyhow::anyhow!("clip response decode: {e}")))?;
return Ok(body);
}
let body_text = resp.text().await.unwrap_or_default();