20 lines
		
	
	
		
			711 B
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			711 B
		
	
	
	
		
			V
		
	
	
module library
 | 
						|
 | 
						|
// add_1 is exported with the C name `add_1`.
 | 
						|
// It can be called by external programs, when the module is compiled
 | 
						|
// as a shared library.
 | 
						|
// It is exported, because the function is declared as public with `pub`.
 | 
						|
// The exported C name is `add_1`, because of the export: tag.
 | 
						|
// (Normally, the exported name is a V mangled version based on the module
 | 
						|
// name followed by __, followed by the fn name, i.e. it would have been
 | 
						|
// `library__add_1`, if not for the export: tag).
 | 
						|
[export: 'add_1']
 | 
						|
pub fn add_1(x int, y int) int {
 | 
						|
	return my_private_function(x + y)
 | 
						|
}
 | 
						|
 | 
						|
// this function is not exported and will not be visible to external programs.
 | 
						|
fn my_private_function(x int) int {
 | 
						|
	return 1 + x
 | 
						|
}
 |