| 125 | } |
| 126 | |
| 127 | ItemPtr Item::take(uint64_t max) { |
| 128 | uint64_t takeCount = std::min(m_count, max); |
| 129 | if (takeCount != 0) { |
| 130 | if (auto newItems = clone()) { |
| 131 | m_count -= takeCount; |
| 132 | newItems->setCount(takeCount); |
| 133 | return newItems; |
| 134 | } else { |
| 135 | Logger::warn(strf("Could not clone {}, not moving {} items as requested.", friendlyName(), takeCount).c_str()); |
| 136 | } |
| 137 | } |
| 138 | |
| 139 | return {}; |
| 140 | } |
| 141 | |
| 142 | bool Item::empty() const { |
| 143 | return m_count == 0; |
no test coverage detected