> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryrollup.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Answer

> What Rollup's query returns, and the updates queryUpdates reports.

```swift theme={null}
public struct Answer: Codable, Sendable, Equatable
```

What `Rollup.shared.query(_:)` returns. See [Query](/guides/query).

<ResponseField name="text" type="String">
  The answer, in plain language.
</ResponseField>

<ResponseField name="assetIdentifiers" type="[String]">
  PhotoKit local identifiers of the photos the answer rests on.
</ResponseField>

<ResponseField name="declined" type="Bool">
  `true` when the question was not about the person's own life, or touched health, religion, sexuality, ethnicity or race, politics, or children, so `query` declined it.
</ResponseField>

```json theme={null}
{
  "text": "You eat at Sushi Saito most, about twice a month since June.",
  "assetIdentifiers": ["5A1C...-001", "9F3B...-001"],
  "declined": false
}
```

## QueryUpdate

```swift theme={null}
public enum QueryUpdate: Codable, Sendable, Equatable
```

One update of `Rollup.shared.queryUpdates(_:)`, in order. See [Query](/guides/query#show-the-answer-as-it-is-written).

<ResponseField name="progress(String)" type="case">
  What the agent is looking at, as a short English sentence, such as "Finding Lisbon".
</ResponseField>

<ResponseField name="partialAnswer(String)" type="case">
  The answer so far. Each replaces the one before. An empty one means the agent went back to reading the index.
</ResponseField>

<ResponseField name="answer(Answer)" type="case">
  The answer, as `query` returns it. Always the last update.
</ResponseField>

It encodes as `{"type": "progress", "text": "..."}`, `{"type": "partialAnswer", "text": "..."}` or `{"type": "answer", "answer": {...}}`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.