feat: define StreamStore/ConsumerStore interfaces from Go store.go

Port IStreamStore, IConsumerStore, StoreMsg, StreamState, SimpleState,
ConsumerState, FileStoreConfig, StoreCipher, StoreCompression types.
Rename Models.StreamState → ApiStreamState to avoid namespace conflict.
This commit is contained in:
Joseph Doherty
2026-02-23 21:06:16 -05:00
parent 256daad8e5
commit 921554f410
14 changed files with 462 additions and 13 deletions

View File

@@ -209,7 +209,7 @@ internal sealed class LeaderFailoverFixture : IAsyncDisposable
return string.Empty;
}
public ValueTask<StreamState> GetStreamStateAsync(string stream)
public ValueTask<ApiStreamState> GetStreamStateAsync(string stream)
=> _streamManager.GetStateAsync(stream, default);
public MetaGroupState? GetMetaState() => _streamManager.GetMetaState();

View File

@@ -206,7 +206,7 @@ internal sealed class JetStreamApiFixture : IAsyncDisposable
return RequestLocalAsync($"$JS.API.STREAM.CREATE.{streamName}", payload);
}
public Task<StreamState> GetStreamStateAsync(string streamName)
public Task<ApiStreamState> GetStreamStateAsync(string streamName)
{
return _streamManager.GetStateAsync(streamName, default).AsTask();
}

View File

@@ -25,8 +25,8 @@ public class StreamStoreContractTests
return ValueTask.FromResult(_last);
}
public ValueTask<StreamState> GetStateAsync(CancellationToken ct)
=> ValueTask.FromResult(new StreamState { Messages = _last });
public ValueTask<ApiStreamState> GetStateAsync(CancellationToken ct)
=> ValueTask.FromResult(new ApiStreamState { Messages = _last });
public ValueTask<StoredMessage?> LoadAsync(ulong sequence, CancellationToken ct)
=> ValueTask.FromResult<StoredMessage?>(null);