From f65cb06da52aedef5950d4aea06607b2ac674407 Mon Sep 17 00:00:00 2001 From: Him188 Date: Sat, 28 Sep 2024 22:40:26 +0100 Subject: [PATCH] Add MediaListFilter.or --- .../data/source/media/source/MediaListFilter.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/shared/app-data/src/commonMain/kotlin/data/source/media/source/MediaListFilter.kt b/app/shared/app-data/src/commonMain/kotlin/data/source/media/source/MediaListFilter.kt index 2aad7228e6..4b40bfbf72 100644 --- a/app/shared/app-data/src/commonMain/kotlin/data/source/media/source/MediaListFilter.kt +++ b/app/shared/app-data/src/commonMain/kotlin/data/source/media/source/MediaListFilter.kt @@ -1,3 +1,12 @@ +/* + * Copyright (C) 2024 OpenAni and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AGPLv3 license, which can be found at the following link. + * + * https://github.com/open-ani/ani/blob/main/LICENSE + */ + package me.him188.ani.app.data.source.media.source import me.him188.ani.datasources.api.Media @@ -38,6 +47,13 @@ fun interface MediaListFilter { fun Ctx.applyOn(media: Candidate): Boolean } +infix fun MediaListFilter.or(cond: MediaListFilter): MediaListFilter { + val self = this + return MediaListFilter { candidate -> + with(self) { applyOn(candidate) } || with(cond) { applyOn(candidate) } + } +} + typealias BasicMediaListFilter = MediaListFilter // TODO: require context MediaListFilterContext to limit scope