arrayitem.jl

DataAugmentation/items/arrayitem.jl is a source file in module DataAugmentation

			
			
			
			
			
			"""
			

			    abstract type AbstractArrayItem{N, T}

			

			Abstract type for all [`Item`]s that wrap an `N`-dimensional

			array with element type `T`.

			"""
			

			
			abstract
			 
			type
			
			 
			

	
			AbstractArrayItem
			{
			N
			,
			 
			T
			}
			 
			<:
			 

	
			Item
			 
			end
			

			

			

			
			
			
			"""
			

			    ArrayItem(a)

			

			An item that contains an array.

			"""
			

			
			
			struct
			
			 
			

	
			ArrayItem
			{
			N
			,
			 
			T
			}
			 
			<:
			 
			

	
			AbstractArrayItem
			{
			N
			,
			 
			T
			}
			
			
    
			
			data
			::
			
			AbstractArray
			{
			T
			,
			 
			N
			}
			

			end
			

			

			
			
			
			
			Base
			.
			
			show
			(
			
			io
			::
			IO
			,
			 
			
			item
			::
			

	
			ArrayItem
			{
			N
			,
			 
			T
			}
			)
			 
			where
			 
			{
			N
			,
			 
			T
			}
			 
			=
			
    
			
			print
			(
			io
			,
			 
			
			"
			ArrayItem{
			$
			N
			, 
			$
			T
			}() of size 
			$
			(
			
			size
			(
			

	
			itemdata
			(
			item
			)
			)
			)
			"
			)
			

			

			

			
			
			
			"""
			

			    MapElem(f)

			

			Applies `f` to every element in an [`AbstractArrayItem`].

			"""
			

			
			
			struct
			
			 

	
			MapElem
			 
			<:
			 

	
			Transform
			
			
    
			f
			

			end
			

			

			
			function
			 
			

	
			apply
			(
			
			tfm
			::

	
			MapElem
			,
			 
			
			item
			::

	
			AbstractArrayItem
			
			;
			 
			
			randstate
			 
			=
			 
			nothing
			)
			
			
    
			
			return
			 
			

	
			setdata
			(
			item
			,
			 
			
			map
			(
			
			tfm
			.
			
			f
			,
			 
			

	
			itemdata
			(
			item
			)
			)
			)
			

			end
			

			

			
			function
			 
			
			

	
			apply!
			(
			
        
			
			bufitem
			::
			I
			,
			
        
			
			tfm
			::

	
			MapElem
			,
			
        
			
			item
			::
			I
			
			;
			
        
			
			randstate
			 
			=
			 
			nothing
			)
			 
			where
			 
			
			I
			 
			<:
			 

	
			AbstractArrayItem
			
			
    
			
			map!
			(
			
			tfm
			.
			
			f
			,
			 
			

	
			itemdata
			(
			bufitem
			)
			,
			 
			

	
			itemdata
			(
			item
			)
			)
			
    
			
			return
			 
			bufitem
			

			end