fn enter_state()

in src/vtok_p11/src/crypto/sign.rs [136:151]


    fn enter_state(&mut self, state: OpCtxState) -> Result<(), Error> {
        let ret = match (self.state, state) {
            (OpCtxState::Initialized, _) => Ok(()),
            (OpCtxState::SinglepartActive, OpCtxState::SinglepartActive) => Ok(()),
            (OpCtxState::SinglepartActive, _) => Err(Error::OperationActive),
            (OpCtxState::MultipartActive, OpCtxState::MultipartActive) => Ok(()),
            (OpCtxState::MultipartActive, OpCtxState::MultipartReady) => Ok(()),
            (OpCtxState::MultipartActive, _) => Err(Error::OperationActive),
            (OpCtxState::MultipartReady, OpCtxState::MultipartReady) => Ok(()),
            (OpCtxState::MultipartReady, _) => Err(Error::OperationActive),
        };
        if ret.is_ok() {
            self.state = state;
        }
        ret
    }