# androidx.navigation3.runtime

Common/AllAndroid/JVM

## Interfaces

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavKey` | Marker interface for keys. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavMetadataKey` | The base Key to be associated with value of type `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavMetadataKey`. | Cmn |

## Classes

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/EntryProviderScope` | The scope for constructing a new `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry` with Kotlin DSL | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/MetadataScope` | Scope provided to the metadata dsl builder. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavBackStack` | A mutable back stack of `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavKey` elements that integrates with Compose state. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry` | Entry maintains and stores the key and the content represented by that key. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntryDecorator` | Decorate the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry`s that are integrated with a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/rememberDecoratedNavEntries.composable#rememberDecoratedNavEntries(kotlin.collections.List,kotlin.collections.List,kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/SaveableStateHolderNavEntryDecorator` | Wraps the content of a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry` with a `https://developer.android.com/reference/kotlin/androidx/compose/runtime/saveable/SaveableStateHolder#SaveableStateProvider(kotlin.Any,kotlin.Function0)` to ensure that calls to `https://developer.android.com/reference/kotlin/androidx/compose/runtime/saveable/rememberSaveable.composable#rememberSaveable(kotlin.Array,androidx.compose.runtime.saveable.Saver,kotlin.String,kotlin.Function0)` within the content work properly and that state can be saved. | Cmn |

## Annotations

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/EntryDsl` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/MetadataDsl` |   | Cmn |

## Composables

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/rememberDecoratedNavEntries.composable` | Decorates the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/package-summary#rememberDecoratedNavEntries(kotlin.collections.List,kotlin.collections.List)` with the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/package-summary#rememberDecoratedNavEntries(kotlin.collections.List,kotlin.collections.List)` and returns the list of decorated NavEntries. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/rememberNavBackStack.composable` |   | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/rememberSaveableStateHolderNavEntryDecorator.composable` | Returns a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/SaveableStateHolderNavEntryDecorator` that is remembered across recompositions. | Cmn |

## Top-level functions summary

|---|---|---|
| `inline (T) -> https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/package-summary#entryProvider(kotlin.Function1,kotlin.Function1)( noinline fallback: (unknownScreen) -> https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry<T>, builder: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/EntryProviderScope<T>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Provides a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/EntryProviderScope` to build an entryProvider that provides NavEntries. | Cmn |
| `inline https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html>` | `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/package-summary#metadata(kotlin.Function1)(builder: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/MetadataScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Provides a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/MetadataScope` to build a Map of metadata. | Cmn |

## Extension functions summary

|---|---|---|
| `operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html>.https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/package-summary#(kotlin.collections.Map).contains(androidx.navigation3.runtime.NavMetadataKey)(key: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavMetadataKey<T>)` Checks if the metadata contains a given key. | Cmn |
| `operator T?` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html>.https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/package-summary#(kotlin.collections.Map).get(androidx.navigation3.runtime.NavMetadataKey)(key: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavMetadataKey<T>)` Returns the metadata value for a given `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavMetadataKey`. | Cmn |

## Top-level functions

### entryProvider

Cmn Artifact: [androidx.navigation3:navigation3-runtime](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/runtime/EntryProvider.kt+function:entryProvider)

```
inline fun <T : Any> entryProvider(
    noinline fallback: (unknownScreen) -> NavEntry<T> = {
        throw IllegalStateException("Unknown screen $it")
    },
    builder: EntryProviderScope<T>.() -> Unit
): (T) -> NavEntry<T>
```

Provides a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/EntryProviderScope` to build an entryProvider that provides NavEntries.

| Parameters |
|---|---|
| `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html>` | the type of the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry` key |
| `noinline fallback: (unknownScreen) -> https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry<T> = { throw IllegalStateException("Unknown screen $it") }` | the fallback `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry` when the provider cannot find an entry associated with a given key on the backStack |
| `builder: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/EntryProviderScope<T>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | the DSL extension that provides a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/EntryProviderScope` to build an entryProvider that provides NavEntries. |

| Returns |
|---|---|
| `(T) -> https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry<T>` | an entryProvider that provides the NavEntry associated with a given key |

### metadata

Cmn Artifact: [androidx.navigation3:navigation3-runtime](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/runtime/NavMetadata.kt+function:metadata) Added in [1.1.0-rc01](https://developer.android.com/jetpack/androidx/releases/navigation3#1.1.0-rc01)

```
inline fun metadata(builder: MetadataScope.() -> Unit): Map<String, Any>
```

Provides a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/MetadataScope` to build a Map of metadata.

| Parameters |
|---|---|
| `builder: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/MetadataScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | the DSL extension that provides a `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/MetadataScope` to build a Map of metadata |

## Extension functions

### Map.contains

Cmn Artifact: [androidx.navigation3:navigation3-runtime](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/runtime/NavMetadata.kt+function:contains)

```
operator fun <T : Any> Map<String, Any>.contains(key: NavMetadataKey<T>): Boolean
```

Checks if the metadata contains a given key.

`https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/package-summary#(kotlin.collections.Map).contains(androidx.navigation3.runtime.NavMetadataKey)` the value type.

| Parameters |
|---|---|
| `key: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavMetadataKey<T>` | the key to check for |

### Map.get

Cmn Artifact: [androidx.navigation3:navigation3-runtime](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/runtime/NavMetadata.kt+function:get)

```
operator fun <T : Any> Map<String, Any>.get(key: NavMetadataKey<T>): T?
```

Returns the metadata value for a given `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavMetadataKey`.

`https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/package-summary#(kotlin.collections.Map).get(androidx.navigation3.runtime.NavMetadataKey)` the value type.

| Parameters |
|---|---|
| `key: https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavMetadataKey<T>` | the key associated with the value |