Skip to content

Instantly share code, notes, and snippets.

@MaikKlein
Created June 3, 2013 15:15
Show Gist options
  • Save MaikKlein/5698913 to your computer and use it in GitHub Desktop.
Save MaikKlein/5698913 to your computer and use it in GitHub Desktop.
struct Handle{
priv handle: uint
}
impl Handle {
fn getHandle(&self) -> uint{
self.handle
}
fn setHandle(&mut self, handle: uint){
self.handle = handle;
}
fn new(h: uint) -> Handle{
Handle {handle: h}
}
}
struct BaseShader{
handle: Handle
}
impl BaseShader {
priv fn compile(&self, source: ~str) -> bool{
true
}
fn new(source : ~str) -> BaseShader {
let shader = BaseShader {handle: Handle::new(0)};
shader.compile(source);
shader
}
}
struct VertexShader{
shader: BaseShader
}
impl VertexShader {
fn new(source : ~str) -> VertexShader{
VertexShader {shader: BaseShader::new(source)}
}
}
struct FragmentShader{
shader: BaseShader
}
//implement the same constructor as for the VertexShader -> duplicated code
fn main() {
let v= VertexShader::new(~"");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment