INNER CODE UNIT · Rust

start_block

GuildOfWeavers/distaff · src/processor/decoder/mod.rs:160

    pub fn start_block(&mut self) {
        assert!(self.step % BASE_CYCLE_LENGTH == BASE_CYCLE_LENGTH - 1,
            "cannot start context block at step {}: operation alignment is not valid", self.step);

        self.advance_step(false);
        self.save_context();
        self.copy_loop_stack();
        self.set_op_bits(FlowOps::Begin, UserOps::Noop);
        self.set_sponge([0, 0, 0, 0]);
    }

    /// Terminates a program block (Group, Switch, or Loop).
    pub fn end_block(&mut self, sibling_hash: u128, true_branch: bool) {
        assert!(self.step % BASE_CYCLE_LENGTH == 0,
            "cannot exit context block at step {}: operation alignment is not valid", self.step);

        self.advance_step(false);
        let context_hash = self.pop_context();

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…