मैं एक ऐसा फ़ंक्शन बनाने की कोशिश कर रहा हूं जो एक विशेषता देता है, इस मामले में शेडर Shader
(जो नीचे दिए गए कोड उदाहरण में ShaderTrait
के रूप में उपयोग किया जाता है)।विधि से वापसी का निशान
त्रुटि: हालांकि मैं निम्न त्रुटि प्राप्त विशेषता core::marker::Sized
प्रकार opal_core::shader::Shader
यह समझ में आता है के रूप में संकलक विशेषता के आकार पता नहीं है के लिए लागू नहीं है, लेकिन कहीं मैं पा सकते हैं इसे ठीक करने का अनुशंसित तरीका। &
के साथ एक संदर्भ वापस पास करने से काम नहीं करेगा (afaik), क्योंकि संदर्भ इसके निर्माता के जीवनकाल से अधिक होगा। शायद मुझे Box<T>
का उपयोग करने की आवश्यकता है?
impl GraphicsContextTrait for GraphicsContext {
/// Creates a shader object
fn create_shader(&self, stage: Stage, source: &str) -> ShaderTrait {
let id;
unsafe {
id = self.functions.CreateShader(shader_stage_to_int(&stage));
}
let shader = Shader {
id: id,
stage: stage,
context: self
};
shader
}
}
धन्यवाद यदि आप मदद कर सकते हैं:
यहाँ कोड उदाहरण है।
ऐसा नहीं है कि सार वापसी प्रकार बग विलय कर दिया गया की तरह दिखता है - सही सिंटैक्स अब बस 'impl T' है? – dimo414
यह अभी भी स्थिर जंग में नहीं है। यह 2018 की शुरुआत में होगा। –