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
 | |
| }
 |