pub trait BaseBox {
// Required methods
fn box_type(&self) -> BoxType;
fn box_payload_size(&self) -> u64;
fn children<'a>(&'a self) -> Box<dyn Iterator<Item = &'a dyn BaseBox> + 'a>;
// Provided methods
fn box_size(&self) -> BoxSize { ... }
fn is_unknown_box(&self) -> bool { ... }
}
Expand description
全てのボックスが実装するトレイト
本来なら Box
という名前が適切だが、それだと標準ライブラリの std::boxed::Box
と名前が
衝突してしまうので、それを避けるために BaseBox
としている
Required Methods§
Sourcefn box_payload_size(&self) -> u64
fn box_payload_size(&self) -> u64
ボックスのペイロードのバイト数
Provided Methods§
Sourcefn is_unknown_box(&self) -> bool
fn is_unknown_box(&self) -> bool
未知のボックスかどうか
基本的には false
を返すデフォルト実装のままで問題ないが、
UnknownBox
や IgnoredBox
を
含む enum
を定義する場合には、独自の実装が必要となる