wit-component 0.17.0

Tooling for working with `*.wit` and component files together.
Documentation
package foo:bar

interface foo {
  resource bar {
    constructor()
    a: static func()
    b: func()
  }

  type t = bar

  type t2 = own<bar>

  a: func(x: bar) -> bar
}

interface baz {
  use foo.{bar, t}

  a: func(x: bar) -> bar

  b: func() -> t
}

interface implicit-own-handles {
  resource a

  b: func(a1: a, a2: a) -> a

  c: func() -> list<a>
}

interface implicit-own-handles2 {
  resource a {
    constructor(a: list<a>)
  }

  resource b {
    constructor(a: list<b>, b: b)
  }

  resource c {
    a: static func(a: c) -> c
  }
}

world some-world {
  import anon: interface {
    resource a {
      constructor()
      b: static func()
      c: func()
    }
  }
  import foo
  import baz
  use baz.{bar}

  resource a {
    constructor()
  }

  export x: func() -> a
  export y: func() -> bar
}
world implicit-own-handles3 {
  resource a {
    constructor(a: list<a>, b: list<a>)
  }
}