## Description
Create a `impl_string_input` macro that opts a type that implements
`FromStr` into being treated as a `ScalarType`, while still appearing as
a `String`.
This allows `async-graphql` to handle input validation as part of its
own query resolution, which avoids us repeating validation work
through-out the codebase.
The `Digest` type is the first type to use the macro (although the
pattern is already used by the `Cursor` type), in this PR.
## Test Plan
```
sui-graphql-rpc$ cargo nextest run
```
## Stack
- #15467
- #15470
- #15471
- #15472
- #15473
- #15474
- #15475
- #15484
- #15485
- #15519
- #15520
- #15521
- #15522
- #15523
- #15524
- #15525
- #15526