From a1dba40f806cac48601847c6f794b6311c25ab46 Mon Sep 17 00:00:00 2001 From: Him188 Date: Wed, 25 Aug 2021 13:51:58 +0800 Subject: [PATCH] Add util `CollectionDiff` --- .../src/commonMain/kotlin/CollectionDiff.kt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 mirai-core-utils/src/commonMain/kotlin/CollectionDiff.kt diff --git a/mirai-core-utils/src/commonMain/kotlin/CollectionDiff.kt b/mirai-core-utils/src/commonMain/kotlin/CollectionDiff.kt new file mode 100644 index 000000000..2a7e1149f --- /dev/null +++ b/mirai-core-utils/src/commonMain/kotlin/CollectionDiff.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2019-2021 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/dev/LICENSE + */ + +package net.mamoe.mirai.utils + +public class CollectionDiff { + private var save: Collection = listOf() + + public fun save(collection: Collection) { + save = collection.toList() + } + + public fun subtract(collection: Collection): Collection = collection subtract save + + public fun subtractAndSave(collection: Collection): Collection { + return subtract(collection).also { save(collection) } + } +} \ No newline at end of file