code: def build(self, callable: Callable) -> Callable[..., CaptureResult]:
          
          def capturing_callable(*args, **kwargs) -> CaptureResult:
              return CaptureResult(return_value=callable(*args, **kwargs))
  
          if self.capture_exceptions:
              # Need to capture exceptions first else other (non-return) captured information will be lost
              exceptions_wrapper = CaptureWrapBuilder._create_capture_exceptions(self.capture_exceptions)
              capturing_callable = CaptureWrapBuilder._wrap(capturing_callable, exceptions_wrapper)
          if self.capture_stdout:
              capturing_callable = CaptureWrapBuilder._wrap(capturing_callable, CaptureWrapBuilder._capture_stdout)
          if self.capture_stderr:
              capturing_callable = CaptureWrapBuilder._wrap(capturing_callable, CaptureWrapBuilder._capture_stderr)
  
          return capturing_callable
docs: Build a method that captures the required information when the given callable is called.
          :param callable: the callable to capture information from
          :return: the wrapped callable