eclipse-score / eclipse-score/persistency

Add dir() method to Rust KvsBuilder for API parity with C++

Open
#222 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
2
Forks
28
Avg merge
2d 16h
Merged PRs (30d)
32

Description

# Add `dir()` method to Rust `KvsBuilder` for API parity with C++

**Component:** `@score_persistency` Rust bindings (`rust_kvs`)
**Priority:** Medium
**Type:** Feature Gap / API Enhancement

---

## Summary

The C++ `KvsBuilder` API provides a `dir(std::string&&)` method to set the storage directory, but the Rust `KvsBuilder` does not expose an equivalent method. This creates API inconsistency between languages and forces Rust users to use the more verbose backend configuration approach.

## Current Behavior

**C++ API (available):**
```cpp
auto kvs = KvsBuilder(instance_id)
.dir("./storage")
.need_kvs_flag(true)
.build();
```

Rust API (workaround required):
```rust
// No .dir() method available - must configure backend explicitly
let backend = JsonBackendBuilder::new()
.working_dir(PathBuf::from("./storage"))
.build();

let kvs = KvsBuilder::new(instance_id)
.backend(Box::new(backend))
.kvs_load(KvsLoad::Optional)
.build()?;
```

Expected Behavior
Rust KvsBuilder should provide a dir() method for API consistency:
```rust
let kvs = KvsBuilder::new(instance_id)
.dir("./storage") // ← Should work
.kvs_load(KvsLoad::Optional)
.build()?;
```

References
C++ API: src/cpp/src/kvsbuilder.hpp:90
Rust implementation: src/rust/rust_kvs/src/kvs_builder.rs:58

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.