This module provides functionalities similar to Python's dir()
function for Vlang.
Install the module using vpm:
v install robinvandernoord.dir
import robinvandernoord.dir
The primary method to inspect any object is dir.dir()
. It returns a sorted list of all public methods and properties
of the provided object.
You can also use dir.properties()
and dir.methods()
to get respectively all properties and methods of an object.
dir.dir[T](object T) []string
import robinvandernoord.dir
import time
struct Person {
name string
birth_year int
}
fn (p Person) age() int {
current_year := time.now().year
return current_year - p.birth_year
}
fn main() {
person := Person{name: 'Alice', birth_year: 1993}
// Get all public methods and properties of the person object
dir_output := dir.dir(person) // []string
println(dir_output) // ['age', 'birth_year', 'name']
println(dir.properties(person)) // ['birth_year', 'name']
println(dir.methods(person)) // ['age']
}
Contributions via issues or pull requests are welcome.
This project is licensed under the MIT License.