Kaba struct Config ed

...

Syntax ed

struct Config
    var build: BuildInfo
    var dry_run: bool
    var force_all_libraries: bool
    var force_build_dir: Path
    var force_profile: string
    var force_rebuild: bool
    var force_threads: i32
    var home_directory: Path
    var install: InstallInfo
    var install_prefix: Path
    var project: ProjectInfo
    var root: Path
    var targets: BuildTarget[]
    var verbose: bool

    # constructors
    func mut __init__()

    # functions
    func build_dir() -> Path
    func dependencies() -> LibGroup[]
    func mut detect_environment()
    func mut detect_project()
    func find_sources(t: BuildTarget) -> Path[]
    func find_target(name: string) -> BuildTarget*
    func has_explicit_default_profile() -> bool
    func ignored(l: string) -> bool
    func mut load()
    func main_target() -> BuildTarget
    func needs_installing() -> Path[]
    func mut parse_targets(c: Configuration)
    func mut save()

    # operators
    func mut __assign__(other: Config)   # Config = Config

Functions ed

func build_dir() -> Path
...

func dependencies() -> LibGroup[]
...

func mut detect_environment()
...

func mut detect_project()
...

func find_sources(t: BuildTarget) -> Path[]
...

func find_target(name: string) -> BuildTarget*
...

func has_explicit_default_profile() -> bool
...

func ignored(l: string) -> bool
...

func mut load()
...

func main_target() -> BuildTarget
...

func needs_installing() -> Path[]
...

func mut parse_targets(c: Configuration)
...

func mut save()
...

Elements ed

var build: BuildInfo
...

var dry_run: bool
...

var force_all_libraries: bool
...

var force_build_dir: Path
...

var force_profile: string
...

var force_rebuild: bool
...

var force_threads: i32
...

var home_directory: Path
...

var install: InstallInfo
...

var install_prefix: Path
...

var project: ProjectInfo
...

var root: Path
...

var targets: BuildTarget[]
...

var verbose: bool
...