Deserializer only checks subtyping for reference types, fully conforming to Candid spec 1.4. You can now decode opt variant even if the variant tags are not the same, allowing upgrading variant types without breaking the client code.
The old candid::Type is now candid::TypeInner, and Type is a newtype of Rc<TypeInner>. This change significantly improves deserialization performance (25% -- 50% improvements)
candid::parser module is only available under feature flag "parser". This significantly cuts down compilation time and Wasm binary size
Disable the use of candid::Func and candid::Service to avoid footguns. Use define_function! and define_service! macro instead
candid::parser::typing::TypeEnv moved to candid::types::TypeEnv. Use of candid::TypeEnv is not affected
candid::parser::types::FuncMode moved to candid::types::FuncMode
candid::parser::value moved to candid::types::value
candid::parser::pretty moved to candid::bindings::candid::value
Deprecate ToDoc trait for pretty printing IDLProg, use candid::bindings::candid module instead
Deprecate candid::codegen, use candid::bindings instead
In candid::bindings::rust, there is a Config struct to control how Rust bindings are generated
Non-breaking changes:
Macros for constructing type AST nodes: service!, func! and field!
Support future types
Bound recursion depth in deserialization for non-Wasm target (Wasm canister doesn't have a specified C ABI, and runs in a sandbox. It's okay to stack overflow)
Limit the size of vec null/reversed in deserialization
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps candid from 0.8.4 to 0.9.0.
Changelog
Sourced from candid's changelog.
Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)