#[non_exhaustive]pub struct Options { /* private fields */ }Expand description
What to generate and where. Build with Options::new, then the
with_* methods.
use canton_codegen::{Options, Runtime};
let options = Options::new("my-app-0.1.0.dar", "my-app-bindings")
.with_crate_name("my-app-bindings")
.with_runtime(Runtime::Version("0.2".to_string()));Implementations§
Source§impl Options
impl Options
Sourcepub fn new(dar: impl Into<PathBuf>, out: impl Into<PathBuf>) -> Self
pub fn new(dar: impl Into<PathBuf>, out: impl Into<PathBuf>) -> Self
Generate bindings for dar into the crate directory out (created if
absent). The crate name defaults to one derived from the DAR file name
and the runtime to the matching published canton-daml.
Sourcepub fn with_crate_name(self, name: impl Into<String>) -> Self
pub fn with_crate_name(self, name: impl Into<String>) -> Self
Set the generated crate’s package name (default: derived from the DAR
file name — see default_crate_name).
Sourcepub fn with_runtime(self, runtime: Runtime) -> Self
pub fn with_runtime(self, runtime: Runtime) -> Self
Set how the generated crate depends on the canton-daml runtime.
Sourcepub fn with_external_package(
self,
package: impl Into<String>,
crate_name: impl Into<String>,
) -> Self
pub fn with_external_package( self, package: impl Into<String>, crate_name: impl Into<String>, ) -> Self
Reference a package that is already published as its own crate instead of generating it, keyed by package name (preferred) or id.
A DAR’s dependency closure is shared — splice-api-token-holding-v1
sits under amulet, wallet and wallet-payments alike — and generating it
into each crate gives each its own Holding, which Rust treats as
unrelated types. A ContractId<Holding> from one then does not
typecheck against the other, though both name the same interface in the
same package.
let options = Options::new("splice-amulet.dar", "amulet-bindings")
.with_external_package("splice-api-token-holding-v1", "canton_splice_api_token_holding_v1");Sourcepub fn with_force(self, force: bool) -> Self
pub fn with_force(self, force: bool) -> Self
Overwrite output files even if they were not generated by this tool.
Sourcepub fn crate_name(&self) -> String
pub fn crate_name(&self) -> String
The crate name that will be used: the explicit one, or the default derived from the DAR path.