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.
Methods
// List articles for a framework
client.articles.list(framework_slug: &str, page: Option<u32>, per_page: Option<u32>)
-> Result<Page<ArticleSummary>, Law4DevsError>
// Get a specific article
client.articles.get(framework_slug: &str, article_number: &str)
-> Result<Article, Law4DevsError>
// Get related articles
client.articles.related(framework_slug: &str, article_number: &str, page: Option<u32>, per_page: Option<u32>)
-> Result<Page<ArticleSummary>, Law4DevsError>
// Auto-paginate all articles
client.articles.iter(framework_slug: &str, per_page: u32)
-> impl Stream<Item = Result<ArticleSummary, Law4DevsError>>
List Articles
let page = client.articles.list("gdpr", None, None).await?;
for a in &page.data {
println!("Art. {}: {}", a.article_number, a.title);
}
Get an Article
let article = client.articles.get("gdpr", "5").await?;
println!("{}", article.content);
for para in &article.paragraphs {
println!("[{}] {}", para.paragraph_ref, para.content);
}
Related Articles
let related = client.articles.related("gdpr", "5", None, None).await?;
for a in &related.data {
println!("{}: {}", a.article_number, a.title);
}
Auto-Paginate
use futures::StreamExt;
let mut stream = Box::pin(client.articles.iter("nis2", 20));
while let Some(result) = stream.next().await {
let a = result?;
println!("Art. {} — {}", a.article_number, a.title);
}
ArticleSummary Fields
| Field | Type | Description |
|---|
id | u32 | Internal ID |
framework_slug | String | Parent framework slug |
article_number | String | Article number (e.g. "5") |
title | String | Article title |
position | u32 | Order within the framework |
paragraph_count | u32 | Number of paragraphs |
tags | Vec<Tag> | Associated compliance tags |
Article Additional Fields
| Field | Type | Description |
|---|
content | String | Full article text |
paragraphs | Vec<ArticleParagraph> | Individual paragraphs |