Commit Graph

18 Commits

Author SHA1 Message Date
6b82e523bd
Add thiserror instead of exposing eyre anonymous errors
The change here is to make it easier for the consumer to debug the api.
Such that they can `match` on individual errors instead of having to
parse text.

eyre is convenient, but mostly from a consumers perspective
2023-04-30 12:57:50 +02:00
8fd6bb983e
fix: serialization of enum args for graphql (#34) 2023-03-14 13:56:49 +00:00
1bfd084cd2 fix: make sure tests have a command to execute 2023-03-13 21:07:14 +01:00
5593fce2e1 fix: remove unused imports 2023-03-13 21:07:14 +01:00
2cc0231c5f refactor: remove export and instead use exitcode 2023-03-13 21:07:14 +01:00
9ba01396cb refactor: move issues to actual tests and refactor 2023-03-13 21:07:14 +01:00
7133bfae95 feat: with dagger-engine v.0.4.0 2023-03-10 23:27:15 +01:00
4381af0295 feat: add tests to sdk 2023-02-25 02:33:30 +01:00
75bc17e57d fix(core): Fix async panic on blocking #19
Replaced internal threads with tokio spawn functions
2023-02-20 10:19:43 +01:00
9be6f435d9 feat(sdk,core): Use async runtime instead of blocking.
Default to using async runtime instead of blocking. I.e.

```rust
fn main() -> eyre::Result<()> {
  // ...

  client.container().from("rust").publish("somewhere")?;

  // ...
}

// to

async fn main() -> eyre::Result<()> {
  // ...

  client.container().from("rust").publish("somewhere").await?;

  // ...
}
```
2023-02-19 21:47:40 +01:00
f29ff836cf feat(sdk): without Some in _opts functions
Option has been removed as a wrapper around opts. This makes it much
more convenient to use

```rust
client.container_opts(Some(ContainerOpts{}))
// ->
client.container_opts(ContainerOpts{})
```

The same options are still available, either an empty object can be
passed, or a non _opts function can be used
2023-02-19 18:00:04 +01:00
9762da895a feat(sdk): with _opts methods
Now all opt values enter into a _opts function instead of the original.
This avoids a lot of verbosity for both None in the case opts are
unwanted, and Some() if they actually are.

They are used like so:

```rust
client.container().from("...");
client.container_opts(Some(ContainerOpts{ ... }))
```

Some from opts will be removed in a future commit/pr
2023-02-19 18:00:04 +01:00
94336d0637 feat(sdk): move to &str instead of String and introduce builder.
This will make the api much easier to use, as we can now rely on ""
instead of "".into() for normal string values.

Introduced builder as well, which makes it much easier to use *Opts, as
it can handle the building of that, and get the benefits from String ->
&str, as that is currently not allowed for optional values
2023-02-19 18:00:04 +01:00
19ed6c267f feat(sdk): re-export through lib.rs
this means that you can now use dagger_sdk::connect() instead of
dagger_sdk::client::connect();
2023-02-19 15:29:03 +01:00
de063eae85 feat(sdk): with return result instead of unwrap 2023-02-19 15:29:03 +01:00
4a4c03f3c2
feature/add impl (#6)
* format code

* with object gen and args

* add implementation

* add rust generator

* reset generated code

* add basic output

* reset output

* add object

* add format function

* with opts

* fix vec

* add context to unwrap

* fix arguments

* with function body

* first complete generation: Still missing Vec<Obj>

* run full alpine

* add roadmap item
2023-02-17 12:33:16 +01:00
3b5b59ba1c
unpack response 2023-02-11 14:02:20 +01:00
7a008be59e
tested full flow initially 2023-02-05 23:44:06 +01:00