pub fn draw_range(&self, range: Range<usize>) {
        assert!(
            range.start < range.end, 
            "Call to draw_range with invalid range {}..{}, start must lie before end!",
            range.start, range.end
        );
        assert!(
            range.end <= self.vertex_count,
            "Call to draw_range with invalid range {}..{}, end or range lies beyond end \
            of buffer (len = {})", range.start, range.end, self.vertex_count
        );

        unsafe {
            gl::BindVertexArray(self.vao);
            gl::DrawArrays(self.primitive_mode as GLenum, range.start as GLint, (range.end - range.start) as GLsizei);
        }
    }
/// Draws a subrange of the contents of this vertex buffer with the primitive mode specified at
/// construction. The start of the range is inclusive, and the end of the range is exclusive.
/// Panics if the range is outside of the bounds of this buffer, or the start of
/// the range lies after the end of the range.
///
/// The range is in units of the vertex type `T` used with this buffer. For example, in a buffer
/// with 6 vertices constituting 2 triangles, `draw_range(3..6)` will draw the second triangle.
Draws a subrange of the contents of this vertex buffer with the primitive mode specified at
construction. The start of the range is inclusive, and the end of the range is exclusive.
Panics if the range is outside of the bounds of this buffer, or the start of
the range lies after the end of the range.

The range is in units of the vertex type `T` used with this buffer. For example, in a buffer
with 6 vertices constituting 2 triangles, `draw_range(3..6)` will draw the second triangle.
Draws a subrange of the contents of this vertex buffer with the primitive mode specified at construction . The start of the range is inclusive and the end of the range is exclusive . Panics if the range is outside of the bounds of this buffer or the start of the range lies after the end of the range . The range is in units of the vertex type ` T ` used with this buffer . For example in a buffer with 6 vertices constituting 2 triangles ` draw_range ( 3 .. 6 ) ` will draw the second triangle .
pub fn draw_range(&self, range: Range<usize>) {
        assert!(
            range.start < range.end, 
            "Call to draw_range with invalid range {}..{}, start must lie before end!",
            range.start, range.end
        );
        assert!(
            range.end <= self.vertex_count,
            "Call to draw_range with invalid range {}..{}, end or range lies beyond end \
            of buffer (len = {})", range.start, range.end, self.vertex_count
        );
        unsafe {
            gl::BindVertexArray(self.vao);
            gl::DrawArrays(self.primitive_mode as GLenum, range.start as GLint, (range.end - range.start) as GLsizei);
        }
    }
pub fn draw_range ( & self , range : Range < usize > ) { assert ! ( range start range end " " range start range end ) ; assert ! ( range end self vertex_count " \
 " range start range end self vertex_count ) ; unsafe { gl :: BindVertexArray ( self . vao ) ; gl :: DrawArrays ( self . primitive_mode as GLenum , range . start as GLint , ( range . end - range . start ) as GLsizei ) ; } }
Draws a subrange of the contents of this vertex buffer with the primitive mode specified at
construction.
Draws a subrange of the contents of this vertex buffer with the primitive mode specified at construction .
&self
range
Range<usize>
&self
range
Range<usize>