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

# Recitals

> List and retrieve recitals with the Rust SDK.

## Methods

```rust theme={null}
client.recitals.list(framework_slug: &str, page: Option<u32>, per_page: Option<u32>)
    -> Result<Page<Recital>, Law4DevsError>

client.recitals.get(framework_slug: &str, recital_number: &str)
    -> Result<Recital, Law4DevsError>

client.recitals.iter(framework_slug: &str, per_page: u32)
    -> impl Stream<Item = Result<Recital, Law4DevsError>>
```

***

## List Recitals

```rust theme={null}
let page = client.recitals.list("gdpr", None, None).await?;
for r in &page.data {
    println!("Recital {}: {}...", r.recital_number, &r.content[..60]);
}
```

***

## Get a Recital

```rust theme={null}
let recital = client.recitals.get("gdpr", "1").await?;
println!("{}", recital.content);
```

***

## Auto-Paginate

```rust theme={null}
use futures::StreamExt;

let mut stream = Box::pin(client.recitals.iter("gdpr", 20));
while let Some(result) = stream.next().await {
    let r = result?;
    println!("Recital {}", r.recital_number);
}
```

***

## `Recital` Fields

| Field            | Type     | Description                |
| ---------------- | -------- | -------------------------- |
| `id`             | `u32`    | Internal ID                |
| `framework_slug` | `String` | Parent framework slug      |
| `recital_number` | `String` | Recital number             |
| `content`        | `String` | Full recital text          |
| `position`       | `u32`    | Order within the framework |
