bchavez / bchavez/RethinkDb.Driver

Simplify run helpers?

Open
#43 13 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
381
Forks
129
PR merge metrics
No merged PRs in 30d

Description

One one the first things that confused me was why are there so many Run\* methods.

Let's see (excluding async versions):
1. `object Run()`
2. `object Run()`
3. `void RunNoReply()`
4. `Cursor RunCursor()`
5. `T RunAtom()`
6. `T RunResult()`
7. `Result RunResult()`
8. `Cursor> RunChanges()`
9. `IEnumerable> RunGrouping()`

Why is (2) needed? If i give it a and it returns object it's not at useful as it could be. Here's suggestion:
1. `object Run()`
2. `T Run()`
3. `Cursor RunCursor()`

If you need Result you'd just do `Run()`, if you need Atom you'd do `Run`.

What do you think?

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the listed synchronous Run, RunCursor, RunAtom, RunResult, RunChanges, and RunGrouping entry points and the surrounding discussion. Determine whether the proposed generic Run() API is compatible with the existing driver surface; done means the maintainers agree on a concrete API change and its affected methods.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
backend-api-design, database
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.