Crate junobuild_utils

source ·
Expand description

§JunoBuild-Utils

junobuild-utils provides a collection of utilities designed to support developers working on Juno, facilitating easier data handling, serialization, deserialization, and working with specialized data types.

§Getting Started

To include junobuild-utils in your Rust project, add it as a dependency in your Cargo.toml:

[dependencies]
junobuild-utils = "*"

Replace "*" with the specific version you want to use, or omit the version to always use the latest version.

§Usage Examples

§Decoding Document Data

Decode the serialized document data received by a hook.

#[derive(Deserialize)]
struct MyData {
    // Your data fields here
}

let decoded: MyData = decode_doc_data(&context.data.data.after.data).expect("Failed to decode data");

§Encoding Document Data

Encodes a Rust struct into serialized document data to prepare data to be stored.

#[derive(Serialize)]
struct MyData {
    // Your data fields here
}

let encoded = encode_doc_data(&my_data).expect("Failed to encode data");

§Handling Specialized Data Types

Work with custom data types such as DocDataPrincipal for principals and DocDataBigInt for bigint.

let principal = DocDataPrincipal { value: candid::Principal::anonymous() };
let big_int = DocDataBigInt { value: 123456789 };

Here are some useful links:

  • Looking to get started? Check out the documentation.
  • Have a look at the LICENSE for information about licensing and limitation.
  • Have questions, comments or feedback? Join our Discord or OpenChat.

Structs§

  • Represents a large integer value for document data, particularly useful for interacting with languages or environments that support large numeric types, such as the bigint in JavaScript.
  • Represents a wrapper around the candid::Principal type.

Functions§

  • Decodes serialized document data into a Rust struct, tailored for use with Juno hooks.
  • Encodes a Rust struct into serialized document data, designed for use with Juno hooks.