Trustfall v0.5.0
obi1kenobi
released this
30 May 04:04
·
350 commits
to main
since this release
What's Changed
- Breaking:
execute_query()
now takesArc<impl Adapter>
instead ofRc<impl Adapter>
for consistency with other APIs and easier use in web servers: #286 - New
resolve_coercion_using_schema()
helper method to simplify implementing adapters'resolve_coercion()
method. TryIntoStruct
trait for ergonomic result parsing into a struct, for example:
use trustfall::TryIntoStruct;
// Define a struct whose field names and types match
// those returned by a query, and derive `serde::Deserialize` on it.
#[derive(Debug, PartialEq, Eq, serde::Deserialize)]
struct Output {
number: i64,
text: String,
}
// Elsewhere, we run a query that outputs a `number` integer
// and a `text` string field.
let query = r#"
{
Query {
number @output
text @output
}
}
"#;
let results: Vec<_> = execute_query(schema, adapter, query, variables)
.expect("bad query arguments")
.map(|v| v.try_into_struct().expect("struct definition did not match query result shape"))
.collect();
// The `try_into_struct()` call turned the query results into `Output` structs.
assert_eq!(
vec![
Output {
number: 42,
text: "the answer to everything".to_string(),
},
],
results,
);
Migrating from Trustfall v0.4
Wrap your adapters in Arc
instead of Rc
before calling execute_query()
.
All Merged PRs
- Add
TryIntoStruct
trait for ergonomic result parsing into a struct. by @obi1kenobi in #275 FilterTypeError
should display the inner error's message. by @obi1kenobi in #278- Update npm and Rust dependency versions. by @obi1kenobi in #279
- Actually put url property on all webpage objects by @u9g in #280
- Move test-related bin functionality out of
trustfall_core
. by @obi1kenobi in #284 - Add helper for resolving coercions based on typename and schema. by @obi1kenobi in #283
- Use
Arc
of adapter to execute queries. by @obi1kenobi in #286 - Ensure we always output the inner error message. by @obi1kenobi in #289
- Clearer error message. by @obi1kenobi in #291
- Add Schema.subtypes to t-wasm by @u9g in #292
- Broaden lifetimes in Hackernews example by @benwis in #293
- Enable trusted publishing for Python packages. by @obi1kenobi in #294
- Release v0.5.0 with
Arc
-based query execution. by @obi1kenobi in #295
New Contributors
Full Changelog: trustfall-v0.4.0...trustfall-v0.5.0