Skip to content

Latest commit

 

History

History

loam-sdk-macro

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

loam-sdk-macro

This crate contains the source for the macros that all subcontracts depend on, such as the #[subcontract] macro itself. Rust macros generate code, allowing users to write less. These macros generate the code necessary for all Subcontracts, and do so in a way that makes it easy to author your own Subcontracts.

#[subcontract] is an attribute procedural macro (proc macro) that you need when you create your own subcontracts.

Aside from #[subcontract], this crate also contains the implementation for #[loamstorage], an attribute procedural macro that generates the interface for different Soroban storage types such as Persistent, Instance, and Temporary. It provides both Map and Store types for key-value pair storage or singletons. These are accessed via the loam PersistentMap, InstanceMap, TemporaryMap, PersistentItem, InstanceItem, and TemporaryItem types.

Deprecated The crate also contains the implementation for some derive macros such as IntoKey, which structs in the subcontract need to derive in order to lazily load and store their state on the blockchain. Deprecated in favor of #[loamstorage].

For more information about how to use and author Subcontracts, see the loam-sdk README.

See lib.rs for the implementations of subcontract, IntoKey, and other macros.