Update 'Interface Definitions'
							parent
							
								
									ac645d78b0
								
							
						
					
					
						commit
						96e3c59673
					
				
							
								
								
									
										21
									
								
								Interface-Definitions.md
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
								
									
										
										
									
									
								
							
						
						
									
										21
									
								
								Interface-Definitions.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
			
		||||
# Syntax
 | 
			
		||||
```
 | 
			
		||||
face ro ReadWriter:Face
 | 
			
		||||
	write
 | 
			
		||||
		> data:{Byte ..}
 | 
			
		||||
		< wrote:Int
 | 
			
		||||
		< err:Error
 | 
			
		||||
	read
 | 
			
		||||
		> into:{Byte ..}
 | 
			
		||||
		< read:Int
 | 
			
		||||
		< err:Error
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Interface sections contain a list of behaviors. Behaviors are a name followed by an indented block of inputs and outputs. It is essentially a more stripped down version of function syntax.
 | 
			
		||||
 | 
			
		||||
# Semantics
 | 
			
		||||
Interfaces in ARF are like interfaces in Go, that is to say, their methods are
 | 
			
		||||
defined and any object that has at least those methods can fulfill that
 | 
			
		||||
interface.
 | 
			
		||||
 | 
			
		||||
Interfaces are able to inherit other interfaces using type notation. If an interface inherits nothing, it must inherit `Face`, which is a blank interface.
 | 
			
		||||
		Reference in New Issue
	
	Block a user