(self: QlQdb, *args, **kwargs)
| 270 | """ |
| 271 | |
| 272 | def magic(self: QlQdb, *args, **kwargs): |
| 273 | if self.rr: |
| 274 | # save State before execution |
| 275 | before = self.rr.save() |
| 276 | |
| 277 | # certian execution to be snapshot |
| 278 | func(self, *args, **kwargs) |
| 279 | |
| 280 | # save State after execution |
| 281 | after = self.rr.save() |
| 282 | |
| 283 | # merge two saved States into a DiffedState |
| 284 | self.rr.layers.append(before.diff(after)) |
| 285 | else: |
| 286 | func(self, *args, **kwargs) |
| 287 | |
| 288 | return magic |
| 289 |