Skip to content

Commit

Permalink
docs: more require macro docs (#1268)
Browse files Browse the repository at this point in the history
  • Loading branch information
paul-schaaf committed Jan 8, 2022
1 parent 4da6a49 commit 49ad086
Showing 1 changed file with 22 additions and 12 deletions.
34 changes: 22 additions & 12 deletions lang/src/lib.rs
Expand Up @@ -317,24 +317,34 @@ pub mod __private {
/// Use this with a custom error type.
///
/// # Example
///
/// After defining an `ErrorCode`
///
/// ```ignore
/// // Instruction function
/// pub fn set_data(ctx: Context<SetData>, data: u64) -> ProgramResult {
/// require!(ctx.accounts.data.mutation_allowed, MyError::MutationForbidden);
/// ctx.accounts.data.data = data;
/// Ok(())
/// }
///
/// // An enum for custom error codes
/// #[error]
/// pub struct ErrorCode {
/// InvalidArgument,
/// pub enum MyError {
/// MutationForbidden
/// }
/// ```
///
/// One can write a `require` assertion as
/// // An account definition
/// #[account]
/// #[derive(Default)]
/// pub struct MyData {
/// mutation_allowed: bool,
/// data: u64
/// }
///
/// ```ignore
/// require!(condition, InvalidArgument);
/// // An account validation struct
/// #[derive(Accounts)]
/// pub struct SetData<'info> {
/// pub data: Account<'info, MyData>
/// }
/// ```
///
/// which would exit the program with the `InvalidArgument` error code if
/// `condition` is false.
#[macro_export]
macro_rules! require {
($invariant:expr, $error:tt $(,)?) => {
Expand Down

0 comments on commit 49ad086

Please sign in to comment.