I want to get started with Piston. But I get the following error many times:
$ cargo run
error[E0412]: cannot find type `wl_interface` in this scope
--> ./target/debug/build/wayland-client-cc3dcff01fc92bd0/out/wayland_c_interfaces.rs:632:47
632 | unsafe { &wl_surface_interface as *const wl_interface },
| ^^^^^^^^^^^^ not found in this scope
I suppose it's some C header that is missing? I get this error under ArchLinux with all software at the latest version. Please note that the wayland_c_interfaces.rs
is not part of my code.
My minimal failing example is:
Cargo.toml:
[package]
name = "gui_test"
version = "0.1.0"
authors = ["ampersand"]
edition = "2018"
[dependencies]
piston_window = "0.98.0"
src/main.rs:
use piston_window::{PistonWindow, WindowSettings};
fn main() {
let mut window: PistonWindow = WindowSettings::new( "Hello Piston!", [640, 480] );
}
I ripgrepped through /usr/include
and found this definition:
wayland-util.h:
struct wl_interface {
/** Interface name */
const char *name;
/** Interface version */
int version;
/** Number of methods (requests) */
int method_count;
/** Method (request) signatures */
const struct wl_message *methods;
/** Number of events */
int event_count;
/** Event signatures */
const struct wl_message *events;
};
But I do not know how to use it in my Rust program.
Sidenote: I also had to remove a lot of lines that only contained a semicolon in the generated files wayland_c_api.rs
and wayland_c_interfaces.rs
because these standalone semicolons created syntax errors.