pdf-rs / pdf_render

MIT License
112 stars 22 forks source link

So many compile errors. #24

Open videni opened 3 months ago

videni commented 3 months ago

What I done

  1. resolve virtual workspace issue
  2. uncomment patch
cargo update 
 cargo build --workspace

got these errors

this is how far I can go (-_-)


   Compiling pathfinder_view v0.1.1 (https://github.com/s3bk/pathfinder_view#4c3b70be)
For more information about this error, try `rustc --explain E0080`.
error: could not compile `pdf_encoding` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
error[E0432]: unresolved import `winit::platform::run_return`
 --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/show.rs:5:23
  |
5 | use winit::platform::{run_return::EventLoopExtRunReturn};
  |                       ^^^^^^^^^^ could not find `run_return` in `platform`

error[E0308]: mismatched types
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/view.rs:20:44
   |
19 |         match (event.state, modifiers.control_key(), event.physical_key) {
   |               ---------------------------------------------------------- this expression has type `(ElementState, bool, PhysicalKey)`
20 |             (ElementState::Pressed, false, KeyCode::PageDown) => ctx.next_page(),
   |                                            ^^^^^^^^^^^^^^^^^ expected `PhysicalKey`, found `KeyCode`

error[E0308]: mismatched types
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/view.rs:21:44
   |
19 |         match (event.state, modifiers.control_key(), event.physical_key) {
   |               ---------------------------------------------------------- this expression has type `(ElementState, bool, PhysicalKey)`
20 |             (ElementState::Pressed, false, KeyCode::PageDown) => ctx.next_page(),
21 |             (ElementState::Pressed, false, KeyCode::PageUp) => ctx.prev_page(),
   |                                            ^^^^^^^^^^^^^^^ expected `PhysicalKey`, found `KeyCode`

error[E0308]: mismatched types
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/view.rs:22:43
   |
19 |         match (event.state, modifiers.control_key(), event.physical_key) {
   |               ---------------------------------------------------------- this expression has type `(ElementState, bool, PhysicalKey)`
...
22 |             (ElementState::Pressed, true, KeyCode::Digit1) => ctx.zoom_by(0.2),
   |                                           ^^^^^^^^^^^^^^^ expected `PhysicalKey`, found `KeyCode`

error[E0308]: mismatched types
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/view.rs:23:43
   |
19 |         match (event.state, modifiers.control_key(), event.physical_key) {
   |               ---------------------------------------------------------- this expression has type `(ElementState, bool, PhysicalKey)`
...
23 |             (ElementState::Pressed, true, KeyCode::Digit2) => ctx.zoom_by(-0.2),
   |                                           ^^^^^^^^^^^^^^^ expected `PhysicalKey`, found `KeyCode`

error[E0308]: mismatched types
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/view.rs:24:43
   |
19 |         match (event.state, modifiers.control_key(), event.physical_key) {
   |               ---------------------------------------------------------- this expression has type `(ElementState, bool, PhysicalKey)`
...
24 |             (ElementState::Pressed, true, KeyCode::Digit0) => ctx.set_zoom(DEFAULT_SCALE),
   |                                           ^^^^^^^^^^^^^^^ expected `PhysicalKey`, found `KeyCode`

error[E0599]: no method named `supports_transparency` found for enum `glutin::config::Config` in the current scope
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/gl.rs:61:49
   |
61 |                 let transparency_check = config.supports_transparency().unwrap_or(false)
   |                                                 ^^^^^^^^^^^^^^^^^^^^^ method not found in `Config`
   |
  ::: /Users/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/glutin-0.31.3/src/config.rs:57:8
   |
57 |     fn supports_transparency(&self) -> Option<bool>;
   |        --------------------- the method is available for `glutin::config::Config` here
   |
   = help: items from traits can only be used if the trait is in scope
help: trait `GlConfig` which provides `supports_transparency` is implemented but not in scope; perhaps you want to import it
   |
2  + use glutin::config::GlConfig;
   |

error[E0599]: no method named `supports_transparency` found for enum `glutin::config::Config` in the current scope
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/gl.rs:62:30
   |
62 |                     & !accum.supports_transparency().unwrap_or(false);
   |                              ^^^^^^^^^^^^^^^^^^^^^ method not found in `Config`
   |
  ::: /Users/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/glutin-0.31.3/src/config.rs:57:8
   |
57 |     fn supports_transparency(&self) -> Option<bool>;
   |        --------------------- the method is available for `glutin::config::Config` here
   |
   = help: items from traits can only be used if the trait is in scope
help: trait `GlConfig` which provides `supports_transparency` is implemented but not in scope; perhaps you want to import it
   |
2  + use glutin::config::GlConfig;
   |

error[E0599]: no method named `num_samples` found for enum `glutin::config::Config` in the current scope
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/gl.rs:64:49
   |
64 |                 if transparency_check || config.num_samples() > accum.num_samples() {
   |                                                 ^^^^^^^^^^^ method not found in `Config`
   |
  ::: /Users/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/glutin-0.31.3/src/config.rs:46:8
   |
46 |     fn num_samples(&self) -> u8;
   |        ----------- the method is available for `glutin::config::Config` here
   |
   = help: items from traits can only be used if the trait is in scope
help: trait `GlConfig` which provides `num_samples` is implemented but not in scope; perhaps you want to import it
   |
2  + use glutin::config::GlConfig;
   |

error[E0599]: no method named `num_samples` found for enum `glutin::config::Config` in the current scope
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/gl.rs:64:71
   |
64 |                 if transparency_check || config.num_samples() > accum.num_samples() {
   |                                                                       ^^^^^^^^^^^ method not found in `Config`
   |
  ::: /Users/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/glutin-0.31.3/src/config.rs:46:8
   |
46 |     fn num_samples(&self) -> u8;
   |        ----------- the method is available for `glutin::config::Config` here
   |
   = help: items from traits can only be used if the trait is in scope
help: trait `GlConfig` which provides `num_samples` is implemented but not in scope; perhaps you want to import it
   |
2  + use glutin::config::GlConfig;
   |

error[E0308]: mismatched types
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/gl.rs:58:73
   |
58 |         let (mut window, gl_config) = display_builder.build(event_loop, template_builder, |configs| {
   |                                                       -----             ^^^^^^^^^^^^^^^^ expected `glutin::config::ConfigTemplateBuilder`, found `ConfigTemplateBuilder`
   |                                                       |
   |                                                       arguments to this method are incorrect
   |
   = note: `ConfigTemplateBuilder` and `glutin::config::ConfigTemplateBuilder` have similar names, but are actually distinct types
note: `ConfigTemplateBuilder` is defined in crate `glutin`
  --> /Users/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/glutin-0.30.10/src/config.rs:91:1
   |
91 | pub struct ConfigTemplateBuilder {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `glutin::config::ConfigTemplateBuilder` is defined in crate `glutin`
  --> /Users/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/glutin-0.31.3/src/config.rs:91:1
   |
91 | pub struct ConfigTemplateBuilder {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   = note: perhaps two different versions of crate `glutin` are being used?
note: method defined here
  --> /Users/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/glutin-winit-0.4.2/src/lib.rs:89:12
   |
89 |     pub fn build<T, Picker>(
   |            ^^^^^

error[E0599]: no method named `display` found for enum `glutin::config::Config` in the current scope
   --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/gl.rs:76:36
    |
76  |         let gl_display = gl_config.display();
    |                                    ^^^^^^^ method not found in `Config`
    |
   ::: /Users/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/glutin-0.31.3/src/display.rs:146:8
    |
146 |     fn display(&self) -> Self::Target;
    |        ------- the method is available for `glutin::config::Config` here
    |
    = help: items from traits can only be used if the trait is in scope
help: trait `GetGlDisplay` which provides `display` is implemented but not in scope; perhaps you want to import it
    |
2   + use glutin::display::GetGlDisplay;
    |

error[E0599]: no method named `display` found for enum `glutin::config::Config` in the current scope
   --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/gl.rs:83:23
    |
83  |             gl_config.display().create_window_surface(&gl_config, &attrs).unwrap()
    |                       ^^^^^^^ method not found in `Config`
    |
   ::: /Users/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/glutin-0.31.3/src/display.rs:146:8
    |
146 |     fn display(&self) -> Self::Target;
    |        ------- the method is available for `glutin::config::Config` here
    |
    = help: items from traits can only be used if the trait is in scope
help: trait `GetGlDisplay` which provides `display` is implemented but not in scope; perhaps you want to import it
    |
2   + use glutin::display::GetGlDisplay;
    |

error[E0599]: no method named `set_inner_size` found for struct `winit::window::Window` in the current scope
   --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/gl.rs:138:25
    |
138 |             self.window.set_inner_size(PhysicalSize::new(size.x() as u32, size.y() as u32));
    |                         ^^^^^^^^^^^^^^
    |
help: there is a method `inner_size` with a similar name, but with different arguments
   --> /Users/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.15/src/window.rs:746:5
    |
746 |     pub fn inner_size(&self) -> PhysicalSize<u32> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/show.rs:75:43
   |
75 |     let window = crate::gl::GlWindow::new(&event_loop, item.title(), window_size, &config);
   |                  ------------------------ ^^^^^^^^^^^ expected `&EventLoop<_>`, found `&Result<EventLoop<_>, EventLoopError>`
   |                  |
   |                  arguments to this function are incorrect
   |
   = note: expected reference `&EventLoop<_>`
              found reference `&Result<EventLoop<_>, EventLoopError>`
note: associated function defined here
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/gl.rs:45:12
   |
45 |     pub fn new<T>(event_loop: &EventLoop<T>, title: String, window_size: Vector2F, config: &Config) -> Self {
   |            ^^^    -------------------------

error[E0599]: no method named `create_proxy` found for enum `Result` in the current scope
   --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/show.rs:84:28
    |
84  |     let proxy = event_loop.create_proxy();
    |                            ^^^^^^^^^^^^ method not found in `Result<EventLoop<_>, EventLoopError>`
    |
note: the method `create_proxy` exists on the type `EventLoop<_>`
   --> /Users/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.15/src/event_loop.rs:253:5
    |
253 |     pub fn create_proxy(&self) -> EventLoopProxy<T> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: consider using `Result::expect` to unwrap the `EventLoop<_>` value, panicking if the value is a `Result::Err`
    |
84  |     let proxy = event_loop.expect("REASON").create_proxy();
    |                           +++++++++++++++++

error[E0599]: no method named `run_return` found for enum `Result` in the current scope
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/show.rs:90:16
   |
90 |     event_loop.run_return(move |event, _, control_flow| {
   |     -----------^^^^^^^^^^ method not found in `Result<EventLoop<_>, EventLoopError>`

error[E0599]: no variant or associated item named `RedrawRequested` found for enum `Event` in the current scope
  --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/show.rs:98:20
   |
98 |             Event::RedrawRequested(_) => {
   |                    ^^^^^^^^^^^^^^^ variant or associated item not found in `Event<_>`

error[E0599]: no variant or associated item named `MainEventsCleared` found for enum `Event` in the current scope
   --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/show.rs:113:20
    |
113 |             Event::MainEventsCleared => item.idle(&mut ctx),
    |                    ^^^^^^^^^^^^^^^^^ variant or associated item not found in `Event<_>`

error[E0599]: no variant or associated item named `LoopDestroyed` found for enum `Event` in the current scope
   --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/show.rs:175:20
    |
175 |             Event::LoopDestroyed => {
    |                    ^^^^^^^^^^^^^ variant or associated item not found in `Event<_>`

error[E0026]: variant `ScaleFactorChanged` does not have a field named `new_inner_size`
   --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/show.rs:116:69
    |
116 |                     WindowEvent::ScaleFactorChanged { scale_factor, new_inner_size: PhysicalSize { width, height } } => {
    |                                                                     ^^^^^^^^^^^^^^
    |                                                                     |
    |                                                                     variant `ScaleFactorChanged` does not have this field
    |                                                                     help: `ScaleFactorChanged` has a field named `inner_size_writer`

error[E0027]: pattern does not mention field `inner_size_writer`
   --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/show.rs:116:21
    |
116 |                     WindowEvent::ScaleFactorChanged { scale_factor, new_inner_size: PhysicalSize { width, height } } => {
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing field `inner_size_writer`
    |
help: include the missing field in the pattern
    |
116 |                     WindowEvent::ScaleFactorChanged { scale_factor, new_inner_size: PhysicalSize { width, height }, inner_size_writer } => {
    |                                                                                                                   ~~~~~~~~~~~~~~~~~~~~~
help: if you don't care about this missing field, you can explicitly ignore it
    |
116 |                     WindowEvent::ScaleFactorChanged { scale_factor, new_inner_size: PhysicalSize { width, height }, .. } => {
    |                                                                                                                   ~~~~~~

error[E0599]: no variant or associated item named `Exit` found for enum `winit::event_loop::ControlFlow` in the current scope
   --> /Users/john/.cargo/git/checkouts/pathfinder_view-e3bb902cdb8b6e4b/4c3b70b/src/show.rs:188:42
    |
188 |             *control_flow = ControlFlow::Exit;
    |                                          ^^^^ variant or associated item not found in `ControlFlow`
    |
note: if you're trying to build a new `winit::event_loop::ControlFlow`, consider using `winit::event_loop::ControlFlow::wait_duration` which returns `winit::event_loop::ControlFlow`
   --> /Users/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/winit-0.29.15/src/event_loop.rs:187:5
    |
187 |     pub fn wait_duration(timeout: Duration) -> Self {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Some errors have detailed explanations: E0026, E0027, E0308, E0432, E0599.
For more information about an error, try `rustc --explain E0026`.
error: could not compile `pathfinder_view` (lib) due to 23 previous errors
error: failed to run custom build command for `khronos-egl v6.0.0`

Caused by:
  process didn't exit successfully: `/Users/john/Workspace/pdf_render/target/debug/build/khronos-egl-ce619f09250c05a8/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=EGL_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_aarch64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_aarch64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=EGL_STATIC
  cargo:rerun-if-env-changed=EGL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_aarch64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_aarch64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_aarch64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_aarch64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64-apple-darwin
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64_apple_darwin
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR

  --- stderr
  thread 'main' panicked at /Users/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/khronos-egl-6.0.0/build.rs:10:14:
  called `Result::unwrap()` on an `Err` value: 
  pkg-config exited with status code 1
  > PKG_CONFIG_PATH=/opt/homebrew/Cellar/libepoxy/1.5.10/lib/pkgconfig:/opt/homebrew/Cellar/libepoxy/1.5.10/lib/pkgconfig:/usr/local/lib/pkgconfig: PKG_CONFIG_LIBDIR=/opt/homebrew/Cellar/libepoxy/1.5.10/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/lib/pkgconfig: PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 pkg-config --libs --cflags egl egl >= 1

  The system library `egl` required by crate `khronos-egl` was not found.
  The file `egl.pc` needs to be installed and the PKG_CONFIG_PATH environment variable must contain its parent directory.
  PKG_CONFIG_PATH contains the following:
      - /opt/homebrew/Cellar/libepoxy/1.5.10/lib/pkgconfig
      - /opt/homebrew/Cellar/libepoxy/1.5.10/lib/pkgconfig
      - /usr/local/lib/pkgconfig
      - 

  HINT: you may need to install a package such as egl, egl-dev or egl-devel.

  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace