Skip to main content

Options

Struct Options 

Source
#[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

Source

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.

Source

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).

Source

pub fn with_runtime(self, runtime: Runtime) -> Self

Set how the generated crate depends on the canton-daml runtime.

Source

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");
Source

pub fn with_force(self, force: bool) -> Self

Overwrite output files even if they were not generated by this tool.

Source

pub fn crate_name(&self) -> String

The crate name that will be used: the explicit one, or the default derived from the DAR path.

Trait Implementations§

Source§

impl Clone for Options

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Options

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.