These have value types explicitly defined in the RFC (https://tools.ietf.org/html/rfc8659#section-4.2).
Perhaps instead of having tag and value fields for CAA RRs, we could just have value whose type is an enum like
pub enum Value {
Issue(DomainName),
IssueWild(DomainName),
IoDef(url::Url),
Unknown(Tag, Vec<u8>),
}
?