Use generic Verse mutable documents
This commit is contained in:
parent
0cff460e91
commit
4a3e5ef457
5 changed files with 71 additions and 103 deletions
|
|
@ -11596,11 +11596,7 @@ static void RequireAetheriaRuntimeVerseClientContract(string root)
|
|||
"AetheriaRuntimeVerseContractRegistry.CreateCultNetRegistry(registry)",
|
||||
"public Observable<CultNetDatabaseChange<TDocument>> WatchRecord<TDocument>(",
|
||||
"WatchRecord<AetheriaRuntimeDaemonFrameDocument>",
|
||||
"CultMeshMutableStatePointer<AetheriaRuntimeDaemonFrameDocument>",
|
||||
"CultMeshMutableStatePointer<AetheriaRuntimeVerseAuthorityPolicyDocument>",
|
||||
"CultMeshMutableStatePointer<AetheriaRuntimeStarbridgeScenarioDocument>",
|
||||
"CultMeshMutableStatePointer<AetheriaRuntimeStarbridgeSessionDocument>",
|
||||
"CultMeshMutableStatePointer<AetheriaRuntimeStarbridgePlayerSeatDocument>",
|
||||
"public CultMeshMutableStatePointer<TDocument> MutableDocument<TDocument>(",
|
||||
"CultMesh.MutableStatePointer(",
|
||||
"CultMesh.CreateCultCacheDocumentRegistry(RuntimeDocumentTypes)",
|
||||
"CultMesh.CreateCultNetDocumentRegistry(RuntimeDocumentTypes, registry)",
|
||||
|
|
@ -11612,7 +11608,6 @@ static void RequireAetheriaRuntimeVerseClientContract(string root)
|
|||
"new CultRecordKey(\"daemon:aetheria.starbridge.session.latest.v1\")",
|
||||
"Document<AetheriaRuntimeVerseAuthorityPolicyDocument>(",
|
||||
"typeof(EveSurfaceState)",
|
||||
"CultMeshMutableStatePointer<EveSurfaceState>",
|
||||
"private AetheriaClientState? _aetheriaState",
|
||||
"private AetheriaRuntimeManagedClientInputs? _managedClientInputs",
|
||||
"_managedClientInputs?.Dispose()",
|
||||
|
|
@ -11676,6 +11671,37 @@ static void RequireAetheriaRuntimeVerseClientContract(string root)
|
|||
string.Join(", ", survivingNamedWatchHelpers));
|
||||
}
|
||||
|
||||
var forbiddenNamedMutablePointers = new[]
|
||||
{
|
||||
"ProviderAdvertisement(",
|
||||
"Health(",
|
||||
"CommandBoundary(",
|
||||
"VerseAuthorityPolicy(",
|
||||
"LatestFrame(",
|
||||
"LatestSoaView(",
|
||||
"StarbridgeScenario(",
|
||||
"StarbridgeSession(",
|
||||
"StarbridgePlayerSeat(",
|
||||
"DaemonGameSurface(",
|
||||
"DaemonGameTuiSurface(",
|
||||
"DaemonEditorSurface(",
|
||||
"DaemonEditorTuiSurface("
|
||||
};
|
||||
var runtimeClientInstanceApi = client.Split(
|
||||
"public AetheriaClientState Aetheria()",
|
||||
StringSplitOptions.None).Last().Split(
|
||||
"public CultMeshDocumentHandle<TDocument> Document<TDocument>(",
|
||||
StringSplitOptions.None)[0];
|
||||
var survivingNamedMutablePointers = forbiddenNamedMutablePointers
|
||||
.Where(symbol => runtimeClientInstanceApi.Contains(symbol, StringComparison.Ordinal))
|
||||
.ToArray();
|
||||
if (survivingNamedMutablePointers.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaRuntimeVerseClient must expose generic MutableDocument<TDocument>(CultRecordKey) instead of named mutable pointer wrappers: " +
|
||||
string.Join(", ", survivingNamedMutablePointers));
|
||||
}
|
||||
|
||||
var requiredManagedInputSymbols = new[]
|
||||
{
|
||||
"internal sealed class AetheriaRuntimeManagedClientInputs : IDisposable",
|
||||
|
|
@ -12016,7 +12042,7 @@ static void RequireAetheriaRuntimeVerseClientContract(string root)
|
|||
{
|
||||
"AetheriaRuntimeVerseClient",
|
||||
"WatchRecord<T>(CultRecordKey)",
|
||||
"CultMeshMutableStatePointer<T>",
|
||||
"MutableDocument<T>(CultRecordKey)",
|
||||
"Unity",
|
||||
"Verse records",
|
||||
"EveSurfaceState",
|
||||
|
|
|
|||
Loading…
Reference in a new issue