All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.com.slack.circuit.runtime.CircuitUiState.kt Maven / Gradle / Ivy

The newest version!
// Copyright (C) 2023 Slack Technologies, LLC
// SPDX-License-Identifier: Apache-2.0
package com.slack.circuit.runtime

import androidx.compose.runtime.Stable

/**
 * Marker interface for all UiState types.
 *
 * States in Circuit should be minimal data models that a `Ui` can render. They are produced by a
 * `Presenter` that interpret the underlying data layer and mediate input user/nav
 * [events][CircuitUiEvent].
 *
 * `Ui`s receive state as a parameter and should act as pure functions that render the input state
 * as a UI. They should not have any side effects or directly interact with the underlying data
 * layer.
 *
 * **Circuit state types are annotated as [@Stable][Stable] and should only use stable properties.**
 */
@Stable public interface CircuitUiState




© 2015 - 2024 Weber Informatics LLC | Privacy Policy