aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/old/examples/dynamic_library_loading/modules/library/library.v
blob: ed3658c911e2345025afdbfacc15cdc6583a13fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
}