В src/lib.rs
У меня есть следующиеКак я могу импортировать из модуля родства?
extern crate opal_core;
mod functions;
mod context;
mod shader;
Тогда в src/context.rs
у меня есть что-то вроде этого, который пытается импортировать символы из src/shader.rs
:
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)
}
}
Проблема в том, что оператор use shader::*;
дает ошибку неразрешенный импорт.
Я читал документы, и они сказали, что use
заявление всегда идут от корня текущей обрешетки (opal_driver_gl
), так что я думал, что shader::*
следует импортировать opal_driver_gl::shader::*
, но он не появляется, чтобы сделать это. Нужно ли использовать здесь self
или super
?
Спасибо, если вы можете помочь.
Вы смотрели на любом из [других вопросов, которые упоминают ту же ошибку] (http://stackoverflow.com/search?q=% 5Brust% 5D + Нерешенные + импорт)? Если да, то как ваш вопрос отличается от них? Вы пытались сделать [меньший тест] (/ help/mcve)? – Shepmaster
Я проверил большинство вопросов «неразрешенного импорта». Они в основном сосредоточены вокруг получения символов снаружи ящика, но я хочу сделать наоборот. Я попытаюсь сузить проблему. – neon64
Считается хорошей практикой рассказать нам, что вы пробовали, и какие вопросы вы видели. Также укажите, почему эти попытки и вопрос не работают или что вы от них не понимаете. Это мешает нам догадываться, какова ваша настоящая проблема, облегчает вам получение ответов и, как правило, улучшает вашу полезность вашего вопроса для будущих поисковиков. – Shepmaster