Skip to content

feat(client): add hincrby - #305

Merged
kacy merged 4 commits into
mainfrom
feat/hincrby
Feb 25, 2026
Merged

feat(client): add hincrby#305
kacy merged 4 commits into
mainfrom
feat/hincrby

Conversation

@kacy

@kacy kacy commented Feb 25, 2026

Copy link
Copy Markdown
Owner

summary

adds Client::hincrby and Pipeline::hincrby — the last command present in the gRPC API but missing from the typed RESP3 client. the rust client now has full parity with the gRPC surface.

what was tested

  • cargo build -p ember-client — clean
  • cargo clippy -p ember-client -- -D warnings — clean
  • cargo fmt --all --check — clean
  • cargo test -p ember-client — 21 unit + 5 doc tests pass
  • integration test hincrby_increments_and_returns_new_value covers positive delta, negative delta, and field creation on first use

kacy added 4 commits February 25, 2026 12:39
adds a full typed command API and pipeline builder on top of the existing
raw `send()` method. no new crate — the types layer cleanly on what's there.

commands covered: get/set/set_ex/del/exists/expire/persist/ttl/pttl/
incr/decr/incrby/decrby/append/mget/mset/getdel (strings), lpush/rpush/
lpop/rpop/lrange/llen (lists), hset/hget/hgetall/hdel/hexists/hlen/hkeys/
hvals (hashes), sadd/srem/smembers/sismember/scard (sets), zadd/zrange/
zrange_withscores/zscore/zrank/zrem/zcard (sorted sets), ping/dbsize/flushdb.

`Pipeline` is a chainable builder that writes all frames in a single
syscall and reads responses sequentially, keeping pipelining cost to one
flush per batch.

`ClientError::Server` is new — server-returned errors (`WRONGTYPE`, etc.)
are now distinct from wire-level `Protocol` errors.
@kacy
kacy merged commit 39dd5fe into main Feb 25, 2026
4 of 7 checks passed
@kacy
kacy deleted the feat/hincrby branch February 25, 2026 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant