我在看那个rust的一个关于字体的开源代码的时候在ab_glyph下的font.rs这个文件中发现了一种十分无厘头的东西就和下面这个类似原文中是Font,但是通篇都没有对他里面定义的函数写逻辑,就是相互调用
trait M {
fn add(&self,a:i32)->i32;
}
impl<F:M>M for &F{
fn add(&self,a:i32)->i32{
(*self).add(a)
}
}
不知道为什么.
我就按照我写的这个简单的运行了一下但是不报错.
pub trait Font {
fn glyph_id(&self, c: char) -> GlyphId;
}
impl<F: Font> Font for &F {
#[inline]
fn glyph_id(&self, c: char) -> GlyphId {
self.0.glyph_id(c)
}
}
这是原来的,没有写全.但好像都没有函数的逻辑