// See guid_diff.h. #include "core/view/guid_diff.h" #include namespace reasampler::view { std::vector newGuids(const std::set& previous, const std::set& current) { std::vector added; for (const std::string& g : current) { if (g.empty()) continue; // never tag a GUID-read failure if (previous.count(g) == 0) added.push_back(g); } return added; } std::vector GuidBaseline::observe(const std::set& current) { if (!primed_) { baseline_ = current; primed_ = true; return {}; } std::vector added = newGuids(baseline_, current); // Assign `current`, not baseline_ ∪ added: a deleted GUID drops out of the // baseline, so a later reused GUID is detected again rather than looking // pre-existing. baseline_ = current; return added; } void GuidBaseline::reset() { baseline_.clear(); primed_ = false; } } // namespace reasampler::view