callback.jl

YVIq2/src/callbacks/ is a source file in module YVIq2

			
			
			
			abstract
			
			 
			
			type
			
			 
			
	
		
			AbstractCallback
			
			 
			
			end
			
			

			
			

			
			
			abstract
			
			 
			
			type
			
			
			 
			
	
		
			SafeCallback
			
			 
			
			<:
			
			 
			
	
		
			AbstractCallback
			
			 
			
			end
			
			

			
			

			
			
			const
			
			
			 
			
	
		
			Callback
			
			 
			
			=
			
			 
			
	
		
			SafeCallback
			
			

			
			

			
			
			abstract
			
			 
			
			type
			
			
			 
			
	
		
			UnsafeCallback
			
			 
			
			<:
			
			 
			
	
		
			AbstractCallback
			
			 
			
			end

TODO: implement proper merging of permissions


			
			
			
			
	
		
			stateaccess
			
			(
			
			
			::
			
	
		
			Callback
			
			)
			
			 
			
			=
			
			 
			
			
			(
			
			
			;
			
			)
			
			

			
			
			
	
		
			runafter
			
			(
			
			
			::
			
	
		
			AbstractCallback
			
			)
			
			 
			
			=
			
			 
			
			
			(
			
			)
			
			

			
			

			
			
			abstract
			
			 
			
			type
			
			 
			
	
		
			ConflictResolution
			
			 
			
			end
			
			

			
			

			
			
			
			
			struct
			
			
			 
			
	
		
			NotDefined
			
			 
			
			<:
			
			 
			
	
		
			ConflictResolution
			
			
			 
			
			end
			
			

			
			

			
			
			
			
			struct
			
			
			 
			
	
		
			Unresolvable
			
			 
			
			<:
			
			 
			
	
		
			ConflictResolution
			
			
			 
			
			end
			
			

			
			

			
			
			
			
			struct
			
			
			 
			
	
		
			RunFirst
			
			 
			
			<:
			
			 
			
	
		
			ConflictResolution
			
			
			 
			
			cb
			
			 
			
			end
			
			

			
			

			
			
			
			
			struct
			
			
			 
			
	
		
			NoConflict
			
			 
			
			<:
			
			 
			
	
		
			ConflictResolution
			
			
			 
			
			end
			
			

			
			

			
			
			function
			
			 
			
			
	
		
			_resolveconflict
			
			(
			
			cb1
			
			,
			
			 
			
			cb2
			
			)
			
			
			
    
			
			
			r
			
			 
			
			=
			
			 
			
			
	
		
			resolveconflict
			
			(
			
			cb1
			
			,
			
			 
			
			cb2
			
			)
			
			
    
			
			
			if
			
			
			 
			
			r
			
			 
			
			===
			
			 
			
			
	
		
			NotDefined
			
			(
			
			)
			
			
			
        
			
			
			return
			
			 
			
			
	
		
			resolveconflict
			
			(
			
			cb2
			
			,
			
			 
			
			cb1
			
			)
			
			
    
			
			else
			
			
			
        
			
			
			return
			
			 
			
			r
			
			
    
			
			end
			
			

			
			end
			
			

			
			

			
			
			
	
		
			resolveconflict
			
			(
			
			
			::
			
	
		
			AbstractCallback
			
			,
			
			 
			
			
			::
			
	
		
			AbstractCallback
			
			)
			
			 
			
			=
			
			 
			
			
	
		
			NotDefined
			
			(
			
			)
			
			

			
			

			
			

			
			
			abstract
			
			 
			
			type
			
			
			 
			
	
		
			FitException
			
			 
			
			<:
			
			 
			
			Exception
			
			 
			
			end
			
			

			
			

			
			

			
			
			
			
			struct
			
			
			 
			
	
		
			CancelStepException
			
			 
			
			<:
			
			 
			
	
		
			FitException
			
			
			
    
			
			
			msg
			
			::
			
			String
			
			

			
			end
			
			

			
			

			
			

			
			
			
			
			struct
			
			
			 
			
	
		
			CancelEpochException
			
			 
			
			<:
			
			 
			
	
		
			FitException
			
			
			
    
			
			
			msg
			
			::
			
			String
			
			

			
			end
			
			

			
			

			
			

			
			
			
			
			struct
			
			
			 
			
	
		
			CancelFittingException
			
			 
			
			<:
			
			 
			
	
		
			FitException
			
			
			
    
			
			
			msg
			
			::
			
			String
			
			

			
			end

Callback hook


			
			
			
			
	
		
			on
			
			(
			
			
			::
			
	
		
			Event
			
			,
			
			 
			
			phase
			
			,
			
			 
			
			
			::
			
	
		
			Callback
			
			,
			
			 
			
			learner
			
			)
			
			 
			
			=
			
			 
			
			
			return
			
			
			
			

			
			

			
			
			
	
		
			_on
			
			(
			
			e
			
			,
			
			 
			
			p
			
			,
			
			 
			
			cb
			
			,
			
			 
			
			learner
			
			)
			
			 
			
			=
			
			 
			
			
	
		
			on
			
			(
			
			e
			
			,
			
			 
			
			p
			
			,
			
			 
			
			cb
			
			,
			
			 
			
			learner
			
			)
			
			

			
			
			function
			
			 
			
			
	
		
			_on
			
			(
			
			e
			
			,
			
			 
			
			p
			
			,
			
			 
			
			
			cb
			
			::
			
	
		
			SafeCallback
			
			,
			
			 
			
			learner
			
			)
			
			
			
    
			
			
			perms
			
			 
			
			=
			
			 
			
			
			
			
			Zygote
			
			.
			
			
			ignore
			
			(
			
			)
			
			 
			
			do
			
			
			
			
        
			
			
			
	
		
			stateaccess
			
			(
			
			cb
			
			)
			
			
    
			
			end
			
			
    
			
			
	
		
			on
			
			(
			
			e
			
			,
			
			 
			
			p
			
			,
			
			 
			
			cb
			
			,
			
			 
			
			
	
		
			protect
			
			(
			
			learner
			
			,
			
			 
			
			perms
			
			)
			
			)
			
			

			
			end
			
			

			
			

			
			

			
			
			
	
		
			init!
			
			(
			
			
			::
			
	
		
			Callback
			
			,
			
			 
			
			learner
			
			)
			
			 
			
			=
			
			 
			
			
			return