def mark(self, digits: int = None) -> float:
        """
        Return time in seconds since last mark, reset, or construction.

        :param digits: number of fractional decimal digits to retain (default as constructed)
        """

        self._mark[:] = [self._mark[1], time()]
        rv = self._mark[1] - self._mark[0]

        if digits is not None and digits > 0:
            rv = round(rv, digits)
        elif digits == 0 or self._digits == 0:
            rv = int(rv)
        elif self._digits is not None and self._digits > 0:
            rv = round(rv, self._digits)

        return rv