in src/Custom/Assistants/Internal/Pagination/RunCollectionPageToken.cs [70:145]
public static RunCollectionPageToken FromToken(ContinuationToken pageToken)
{
if (pageToken is RunCollectionPageToken token)
{
return token;
}
BinaryData data = pageToken.ToBytes();
if (data.ToMemory().Length == 0)
{
throw new ArgumentException("Failed to create RunCollectionPageToken from provided pageToken.", nameof(pageToken));
}
Utf8JsonReader reader = new(data);
string threadId = null!;
int? limit = null;
string? order = null;
string? after = null;
string? before = 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 "threadId":
reader.Read();
Debug.Assert(reader.TokenType == JsonTokenType.String);
threadId = 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;
default:
throw new JsonException($"Unrecognized property '{propertyName}'.");
}
}
if (threadId is null)
{
throw new ArgumentException("Failed to create RunCollectionPageToken from provided pageToken.", nameof(pageToken));
}
return new(threadId, limit, order, after, before);
}