fix(apb): add link type, tag is Link
This commit is contained in:
parent
9785b9856c
commit
cf26b77fdf
2 changed files with 6 additions and 1 deletions
|
@ -18,6 +18,7 @@ crate::strenum! {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait Link : crate::Base {
|
pub trait Link : crate::Base {
|
||||||
|
fn link_type(&self) -> Field<LinkType> { Err(FieldErr("type")) }
|
||||||
fn href(&self) -> &str;
|
fn href(&self) -> &str;
|
||||||
fn rel(&self) -> Field<&str> { Err(FieldErr("rel")) }
|
fn rel(&self) -> Field<&str> { Err(FieldErr("rel")) }
|
||||||
fn media_type(&self) -> Field<&str> { Err(FieldErr("mediaType")) } // also in obj
|
fn media_type(&self) -> Field<&str> { Err(FieldErr("mediaType")) } // also in obj
|
||||||
|
@ -29,6 +30,7 @@ pub trait Link : crate::Base {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait LinkMut : crate::BaseMut {
|
pub trait LinkMut : crate::BaseMut {
|
||||||
|
fn set_link_type(self, val: Option<LinkType>) -> Self;
|
||||||
fn set_href(self, href: &str) -> Self;
|
fn set_href(self, href: &str) -> Self;
|
||||||
fn set_rel(self, val: Option<&str>) -> Self;
|
fn set_rel(self, val: Option<&str>) -> Self;
|
||||||
fn set_media_type(self, val: Option<&str>) -> Self; // also in obj
|
fn set_media_type(self, val: Option<&str>) -> Self; // also in obj
|
||||||
|
@ -56,6 +58,7 @@ impl Link for serde_json::Value {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
crate::getter! { link_type -> type LinkType }
|
||||||
crate::getter! { rel -> &str }
|
crate::getter! { rel -> &str }
|
||||||
crate::getter! { mediaType -> &str }
|
crate::getter! { mediaType -> &str }
|
||||||
crate::getter! { name -> &str }
|
crate::getter! { name -> &str }
|
||||||
|
@ -80,6 +83,7 @@ impl LinkMut for serde_json::Value {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
crate::setter! { link_type -> type LinkType }
|
||||||
crate::setter! { rel -> &str }
|
crate::setter! { rel -> &str }
|
||||||
crate::setter! { mediaType -> &str }
|
crate::setter! { mediaType -> &str }
|
||||||
crate::setter! { name -> &str }
|
crate::setter! { name -> &str }
|
||||||
|
|
|
@ -92,7 +92,8 @@ pub trait Object : Base {
|
||||||
fn summary(&self) -> Field<&str> { Err(FieldErr("summary")) }
|
fn summary(&self) -> Field<&str> { Err(FieldErr("summary")) }
|
||||||
/// One or more "tags" that have been associated with an objects. A tag can be any kind of Object
|
/// One or more "tags" that have been associated with an objects. A tag can be any kind of Object
|
||||||
/// The key difference between attachment and tag is that the former implies association by inclusion, while the latter implies associated by reference
|
/// The key difference between attachment and tag is that the former implies association by inclusion, while the latter implies associated by reference
|
||||||
fn tag(&self) -> Node<Self::Object> { Node::Empty }
|
// TODO technically this is an object? but spec says that it works my reference, idk
|
||||||
|
fn tag(&self) -> Node<Self::Link> { Node::Empty }
|
||||||
/// Identifies one or more links to representations of the object
|
/// Identifies one or more links to representations of the object
|
||||||
fn url(&self) -> Node<Self::Link> { Node::Empty }
|
fn url(&self) -> Node<Self::Link> { Node::Empty }
|
||||||
/// Identifies an entity considered to be part of the public primary audience of an Object
|
/// Identifies an entity considered to be part of the public primary audience of an Object
|
||||||
|
|
Loading…
Reference in a new issue