in src/Custom/VectorStores/Internal/Pagination/VectorStoreFileBatchCollectionPageToken.cs [82:170]
public static VectorStoreFileBatchCollectionPageToken FromToken(ContinuationToken pageToken)
{
if (pageToken is VectorStoreFileBatchCollectionPageToken token)
{
return token;
}
BinaryData data = pageToken.ToBytes();
if (data.ToMemory().Length == 0)
{
throw new ArgumentException("Failed to create VectorStoreFileBatchesPageToken from provided pageToken.", nameof(pageToken));
}
Utf8JsonReader reader = new(data);
string vectorStoreId = null!;
string batchId = null!;
int? limit = null;
string? order = null;
string? after = null;
string? before = null;
string? filter = null;
reader.Read();
Debug.Assert(reader.TokenType == JsonTokenType.StartObject);
while (reader.Read())
{
if (reader.TokenType == JsonTokenType.EndObject)
{
break;
}
Debug.Assert(reader.TokenType == JsonTokenType.PropertyName);
string propertyName = reader.GetString()!;
switch (propertyName)
{
case "vectorStoreId":
reader.Read();
Debug.Assert(reader.TokenType == JsonTokenType.String);
vectorStoreId = reader.GetString()!;
break;
case "batchId":
reader.Read();
Debug.Assert(reader.TokenType == JsonTokenType.String);
batchId = reader.GetString()!;
break;
case "limit":
reader.Read();
Debug.Assert(reader.TokenType == JsonTokenType.Number);
limit = reader.GetInt32();
break;
case "order":
reader.Read();
Debug.Assert(reader.TokenType == JsonTokenType.String);
order = reader.GetString();
break;
case "after":
reader.Read();
Debug.Assert(reader.TokenType == JsonTokenType.String);
after = reader.GetString();
break;
case "before":
reader.Read();
Debug.Assert(reader.TokenType == JsonTokenType.String);
before = reader.GetString();
break;
case "filter":
reader.Read();
Debug.Assert(reader.TokenType == JsonTokenType.String);
filter = reader.GetString();
break;
default:
throw new JsonException($"Unrecognized property '{propertyName}'.");
}
}
if (vectorStoreId is null ||
batchId is null)
{
throw new ArgumentException("Failed to create VectorStoreFileBatchesPageToken from provided pageToken.", nameof(pageToken));
}
return new(vectorStoreId, batchId, limit, order, after, before, filter);
}