• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download

<lambda>null1 package shark
2 
3 /**
4  * Extracts metadata from a hprof to be reported in [HeapAnalysisSuccess.metadata].
5  *
6  * This is a functional interface with which you can create a [MetadataExtractor] from a lambda.
7  */
8 fun interface MetadataExtractor {
9   fun extractMetadata(graph: HeapGraph): Map<String, String>
10 
11   companion object {
12 
13     /**
14      * A no-op [MetadataExtractor]
15      */
16     val NO_OP = MetadataExtractor { emptyMap() }
17 
18     /**
19      * Utility function to create a [MetadataExtractor] from the passed in [block] lambda instead of
20      * using the anonymous `object : MetadataExtractor` syntax.
21      *
22      * Usage:
23      *
24      * ```kotlin
25      * val inspector = MetadataExtractor { graph ->
26      *
27      * }
28      * ```
29      */
30     inline operator fun invoke(crossinline block: (HeapGraph) -> Map<String, String>): MetadataExtractor =
31       MetadataExtractor { graph -> block(graph) }
32   }
33 }
34