SpacetimeDB icon indicating copy to clipboard operation
SpacetimeDB copied to clipboard

Implements `IComparable` for `Identity` and `ConnectionId`

Open rekhoff opened this issue 10 months ago • 0 comments

Description of Changes

Implements IComparable for Identity and ConnectionId

This relates to the following issue: https://github.com/clockworklabs/SpacetimeDB/issues/2348

API and ABI breaking changes

Not a breaking change. Adds functionality and fixes bug.

Expected complexity level and risk

1

Testing

  1. Created a test project with a Rust server defining a table with a btree index like:
#[index(btree)]
pub identity: Identity,

and another where a table was defined with: #[spacetimedb::table(name = period_timer, scheduled(period, at = scheduled_at), index(name = identity, btree(columns = [identity])))] 2. Published the server. 3. Created a C# client and generated the bindings. 4. Confirmed issue existed prior to change: IDE reports an error in the table definition of The type 'SpacetimeDB.Identity' must be convertible to 'System.IComparable<SpacetimeDB.Identity>' in order to use it as parameter 'Column' in the generic class 'SpacetimeDB.RemoteTableHandle<EventContext,Row>.BTreeIndexBase<Column>' 5. Made change contained in this PR. 6. Rebuilt SpacetimeDB executables, and C# SDK NuGet files. 7. Tested again by republishing and regenerating bindings. 8. Observed IDE no longer reports issue.

  • [x] Tested IDE no longer reports error after change.

rekhoff avatar Mar 05 '25 19:03 rekhoff