51 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. _transient:
 | |
| 
 | |
| Transients
 | |
| ==========
 | |
| 
 | |
| *Transients* is a concept borrowed `from Clojure
 | |
| <clojure-transients>`_, with some twists to turn make more idiomatic
 | |
| in C++.  Essentially, they are a mutable interface built on top of the
 | |
| same data structures the implements the immutable containers under the
 | |
| hood.
 | |
| 
 | |
| These can be useful for :ref:`performing efficient batch
 | |
| updates<batch-update>` or :ref:`interfacing with standard
 | |
| algorithms<std-compat>`.
 | |
| 
 | |
| .. _clojure-transients: https://clojure.org/reference/transients
 | |
| 
 | |
| array_transient
 | |
| ---------------
 | |
| 
 | |
| .. doxygenclass:: immer::array_transient
 | |
|     :members:
 | |
|     :undoc-members:
 | |
| 
 | |
| vector_transient
 | |
| ----------------
 | |
| 
 | |
| .. doxygenclass:: immer::vector_transient
 | |
|     :members:
 | |
|     :undoc-members:
 | |
| 
 | |
| flex_vector_transient
 | |
| ---------------------
 | |
| 
 | |
| .. doxygenclass:: immer::flex_vector_transient
 | |
|     :members:
 | |
|     :undoc-members:
 | |
| 
 | |
| set_transient
 | |
| -------------
 | |
| 
 | |
| .. doxygenclass:: immer::set_transient
 | |
|     :members:
 | |
|     :undoc-members:
 | |
| 
 | |
| map_transient
 | |
| -------------
 | |
| 
 | |
| .. doxygenclass:: immer::map_transient
 | |
|     :members:
 | |
|     :undoc-members:
 |