AiutaStorage

interface AiutaStorage

Storage interface for key-value persistence using DataStore Preferences.

This interface provides type-safe operations for storing and retrieving data. It supports both primitive types (via extension functions) and complex serializable objects (via generic methods with kotlinx.serialization).

All operations are suspending and thread-safe. Each storage instance is isolated by namespace and does not share data with other instances.

Usage example:

// Create storage instance
val storage = AiutaStorageFactory.create("my_namespace", platformContext)

// Save and retrieve primitives (via extension functions)
storage.saveString("name", "Alice")
val name = storage.getString("name") // "Alice"

// Save and retrieve serializable objects
@Serializable
data class UserSettings(val theme: String, val fontSize: Int)

storage.save("settings", UserSettings("dark", 14))
val settings = storage.get<UserSettings>("settings")

See also

for creating instances

Types

Link copied to clipboard
class Factory

Functions

Link copied to clipboard
abstract suspend fun clear()

Clears all data in this storage instance.

Link copied to clipboard
abstract suspend fun <T> get(key: String, serializer: KSerializer<T>): T?

Retrieves a value for the given key using the provided serializer.

Link copied to clipboard
inline suspend fun <T> AiutaStorage.get(key: String): T?

Inline helper that automatically resolves serializer for type T.

Link copied to clipboard

Convenience extension for reading booleans.

Link copied to clipboard
suspend fun AiutaStorage.getDouble(key: String): Double?

Convenience extension for reading doubles.

Link copied to clipboard
suspend fun AiutaStorage.getFloat(key: String): Float?

Convenience extension for reading floats.

Link copied to clipboard
suspend fun AiutaStorage.getInt(key: String): Int?

Convenience extension for reading ints.

Link copied to clipboard
suspend fun AiutaStorage.getLong(key: String): Long?

Convenience extension for reading longs.

Link copied to clipboard
suspend fun AiutaStorage.getString(key: String): String?

Convenience extension for reading plain strings.

Link copied to clipboard
abstract suspend fun remove(key: String)

Removes the value for the given key.

Link copied to clipboard
abstract suspend fun <T> save(key: String, value: T, serializer: KSerializer<T>)

Saves a value for the given key using the provided serializer.

Link copied to clipboard
inline suspend fun <T> AiutaStorage.save(key: String, value: T)

Inline helper that automatically resolves serializer for type T.

Link copied to clipboard
suspend fun AiutaStorage.saveBoolean(key: String, value: Boolean)

Convenience extension for storing booleans.

Link copied to clipboard
suspend fun AiutaStorage.saveDouble(key: String, value: Double)

Convenience extension for storing doubles.

Link copied to clipboard
suspend fun AiutaStorage.saveFloat(key: String, value: Float)

Convenience extension for storing floats.

Link copied to clipboard
suspend fun AiutaStorage.saveInt(key: String, value: Int)

Convenience extension for storing ints.

Link copied to clipboard
suspend fun AiutaStorage.saveLong(key: String, value: Long)

Convenience extension for storing longs.

Link copied to clipboard
suspend fun AiutaStorage.saveString(key: String, value: String)

Convenience extension for storing plain strings.