In src/lib.rs
ich habe folgendesWie importiere ich von einem Geschwistermodul?
extern crate opal_core;
mod functions;
mod context;
mod shader;
Dann in src/context.rs
Ich habe so etwas wie dieses, die Symbole von src/shader.rs
zu importieren versucht:
use opal_core::shader::Stage;
use opal_core::shader::Shader as ShaderTrait;
use opal_core::GraphicsContext as GraphicsContextTrait;
use functions::*; // this import works fine
use shader::*; // this one doesn't
pub struct GraphicsContext {
functions: Gl
}
fn shader_stage_to_int(stage: &Stage) -> u32 {
match stage {
&Stage::Vertex => VERTEX_SHADER,
&Stage::Geometry => GEOMETRY_SHADER,
&Stage::Fragment => FRAGMENT_SHADER,
}
}
impl GraphicsContextTrait for GraphicsContext {
/// Creates a shader object
fn create_shader(&self, stage: Stage, source: &str) -> Box<ShaderTrait> {
let id;
unsafe {
id = self.functions.CreateShader(shader_stage_to_int(&stage));
}
let shader = Shader {
id: id,
stage: stage,
context: self
};
Box::new(shader)
}
}
Das Problem, dass die Aussage use shader::*;
den Fehler verursacht wird ungelöster Import.
ich die Dokumentation lese und sie sagten, dass use
Aussagen von der Wurzel der aktuellen Kiste gehen immer (opal_driver_gl
), so dachte ich shader::*
opal_driver_gl::shader::*
importieren werden soll, aber es scheint nicht so zu tun. Muss ich hier die Schlüsselwörter self
oder super
verwenden?
Danke, wenn Sie helfen können.
Haben Sie sich in eines der [anderen Fragen, die die gleichen Fehler erwähnen] sehen (http://stackoverflow.com/search?q=% 5Rest% 5D + ungelöst + Import)? Wenn ja, wie unterscheidet sich Ihre Frage von ihnen? Haben Sie versucht, einen [kleineren Testfall] (/ help/mcve) zu erstellen? – Shepmaster
Ich habe die meisten "ungelösten Import" Fragen ausgecheckt. Sie konzentrieren sich hauptsächlich darauf, Symbole von außerhalb einer Kiste zu bekommen, aber ich möchte das Gegenteil tun. Ich werde versuchen, das Problem einzuschränken. – neon64
Es ist eine gute Übung, uns zu sagen, was Sie versucht haben und welche Fragen Sie gesehen haben. Nennen Sie auch, warum diese Versuche und Fragen nicht funktionieren oder was Sie nicht von ihnen verstehen. Dies verhindert, dass wir Ihr tatsächliches Problem erraten, es Ihnen leichter machen, Antworten zu erhalten, und verbessert in der Regel Ihre Frage, wie nützlich Ihre Frage für zukünftige Suchende ist. – Shepmaster