@@ -766,3 +766,56 @@ fun <K, V> Map<K, V>.toPersistentHashMap(): PersistentMap<K, V>
766
766
= this as ? PersistentHashMap
767
767
? : (this as ? PersistentHashMapBuilder <K , V >)?.build()
768
768
? : PersistentHashMap .emptyOf<K , V >().putAll(this )
769
+
770
+ /* *
771
+ * Returns an immutable list using the given [builderAction]
772
+ *
773
+ * The list passed as a receiver to the [builderAction] is valid only inside that function.
774
+ * Using it outside the function produces an unspecified behavior.
775
+ */
776
+ inline fun <T > buildPersistentList (builderAction : PersistentList .Builder <T >.() -> Unit ): PersistentList <T > =
777
+ persistentListOf<T >().builder().apply (builderAction).build()
778
+
779
+ /* *
780
+ * Returns an immutable set using the given [builderAction]
781
+ *
782
+ * The list passed as a receiver to the [builderAction] is valid only inside that function.
783
+ * Using it outside the function produces an unspecified behavior.
784
+ *
785
+ * Elements of the set are iterated in the order they were added by the [builderAction].
786
+ */
787
+ inline fun <T > buildPersistentSet (builderAction : PersistentSet .Builder <T >.() -> Unit ): PersistentSet <T > =
788
+ persistentSetOf<T >().builder().apply (builderAction).build()
789
+
790
+ /* *
791
+ * Returns an immutable hash set using the given [builderAction]
792
+ *
793
+ * The list passed as a receiver to the [builderAction] is valid only inside that function.
794
+ * Using it outside the function produces an unspecified behavior.
795
+ *
796
+ * Order of the elements in the returned set is unspecified.
797
+ */
798
+ inline fun <T > buildPersistentHashSet (builderAction : PersistentSet .Builder <T >.() -> Unit ): PersistentSet <T > =
799
+ persistentHashSetOf<T >().builder().apply (builderAction).build()
800
+
801
+ /* *
802
+ * Returns an immutable map using the given [builderAction]
803
+ *
804
+ * The map passed as a receiver to the [builderAction] is valid only inside that function.
805
+ * Using it outside the function produces an unspecified behavior.
806
+ *
807
+ * Entries of the map are iterated in the order they were added by the [builderAction].
808
+ */
809
+ inline fun <K , V > buildPersistentMap (builderAction : PersistentMap .Builder <K , V >.() -> Unit ): PersistentMap <K , V > =
810
+ persistentMapOf<K , V >().builder().apply (builderAction).build()
811
+
812
+ /* *
813
+ * Returns an immutable hash map using the given [builderAction]
814
+ *
815
+ * The map passed as a receiver to the [builderAction] is valid only inside that function.
816
+ * Using it outside the function produces an unspecified behavior.
817
+ *
818
+ * Order of the entries in the returned map is unspecified.
819
+ */
820
+ inline fun <K , V > buildPersistentHashMap (builderAction : PersistentMap .Builder <K , V >.() -> Unit ): PersistentMap <K , V > =
821
+ persistentHashMapOf<K , V >().builder().apply (builderAction).build()
0 commit comments