mirror of
https://git.asonix.dog/asonix/activitystreams.git
synced 2024-11-25 13:21:00 +00:00
Add more impls for primitives
This commit is contained in:
parent
416ac16af2
commit
d690f40cf0
12 changed files with 52 additions and 14 deletions
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "activitystreams"
|
||||
description = "Activity Streams in Rust"
|
||||
version = "0.5.0-alpha.4"
|
||||
version = "0.5.0-alpha.5"
|
||||
license = "GPL-3.0"
|
||||
authors = ["asonix <asonix@asonix.dog>"]
|
||||
repository = "https://git.asonix.dog/Aardwolf/activitystreams"
|
||||
|
|
|
@ -9,7 +9,7 @@ __A set of Traits and Types that make up the ActivityStreams and ActivityPub spe
|
|||
|
||||
First, add ActivityStreams to your dependencies
|
||||
```toml
|
||||
activitystreams = "0.5.0-alpha.4"
|
||||
activitystreams = "0.5.0-alpha.5"
|
||||
```
|
||||
|
||||
### Types
|
||||
|
@ -177,7 +177,7 @@ There are a number of features that can be disabled in this crate. By default, e
|
|||
enabled.
|
||||
|
||||
```toml
|
||||
activitystreams = { version = "0.5.0-alpha.4", default-features = "false", features = ["derive"] }
|
||||
activitystreams = { version = "0.5.0-alpha.5", default-features = "false", features = ["derive"] }
|
||||
```
|
||||
|
||||
| feature | what you get |
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
//!
|
||||
//! First, add ActivityStreams to your dependencies
|
||||
//! ```toml
|
||||
//! activitystreams = "0.5.0-alpha.4"
|
||||
//! activitystreams = "0.5.0-alpha.5"
|
||||
//! ```
|
||||
//!
|
||||
//! ### Types
|
||||
|
@ -193,7 +193,7 @@
|
|||
//! enabled.
|
||||
//!
|
||||
//! ```toml
|
||||
//! activitystreams = { version = "0.5.0-alpha.4", default-features = "false", features = ["derive"] }
|
||||
//! activitystreams = { version = "0.5.0-alpha.5", default-features = "false", features = ["derive"] }
|
||||
//! ```
|
||||
//!
|
||||
//! | feature | what you get |
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
///
|
||||
/// See [`RFC 2045`](https://tools.ietf.org/html/rfc2045) and
|
||||
/// [`RFC 2046`](https://tools.ietf.org/html/rfc2046) for more information.
|
||||
#[derive(Clone, Debug)]
|
||||
#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
|
||||
pub struct MimeMediaType(mime::Mime);
|
||||
|
||||
#[derive(Clone, Debug, thiserror::Error)]
|
||||
|
@ -32,6 +32,12 @@ pub struct MimeMediaType(mime::Mime);
|
|||
/// The error type produced when a MimeMediaType cannot be parsed
|
||||
pub struct MimeMediaTypeError;
|
||||
|
||||
impl<'a> PartialEq<&'a str> for MimeMediaType {
|
||||
fn eq(&self, rhs: &&'a str) -> bool {
|
||||
self.0.eq(rhs)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<mime::Mime> for MimeMediaType {
|
||||
fn from(m: mime::Mime) -> Self {
|
||||
MimeMediaType(m)
|
||||
|
|
|
@ -20,7 +20,9 @@
|
|||
use crate::primitives::XsdString;
|
||||
|
||||
/// The rdf.langString type extends xs.string, and represents a language tagged string in RDF.
|
||||
#[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize)]
|
||||
#[derive(
|
||||
Clone, Debug, Default, Eq, Ord, PartialEq, PartialOrd, serde::Deserialize, serde::Serialize,
|
||||
)]
|
||||
pub struct RdfLangString {
|
||||
/// The content of the langstring
|
||||
///
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
/// Note that when relative URI references such as "../prod" are used as values of xsd:anyURI, no
|
||||
/// attempt is made to determine or keep track of the base URI to which they may be applied. For
|
||||
/// more information on URIs, see RFC 2396, Uniform Resource Identifiers (URI): Generic Syntax.
|
||||
#[derive(Clone, Debug)]
|
||||
#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
|
||||
pub struct XsdAnyUri(url::Url);
|
||||
|
||||
/// The error type produced when an XsdAnyUri cannot be parsed
|
||||
|
@ -76,6 +76,12 @@ impl Default for XsdAnyUri {
|
|||
}
|
||||
}
|
||||
|
||||
impl AsRef<str> for XsdAnyUri {
|
||||
fn as_ref(&self) -> &str {
|
||||
self.0.as_ref()
|
||||
}
|
||||
}
|
||||
|
||||
impl std::convert::TryFrom<String> for XsdAnyUri {
|
||||
type Error = XsdAnyUriError;
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
/// range from -14:00 to 14:00. For example, US Eastern Standard Time, which is five hours behind
|
||||
/// UTC, is represented as -05:00. If no time zone value is present, it is considered unknown; it
|
||||
/// is not assumed to be UTC.
|
||||
#[derive(Clone, Debug)]
|
||||
#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
|
||||
pub struct XsdDateTime(chrono::DateTime<chrono::FixedOffset>);
|
||||
|
||||
/// The error type produced when an XsdDateTime cannot be parsed
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
/// This implementation converts Months to Days by multiplying by 31, and converts Years to days by
|
||||
/// multiplying by 365. If this is an issue for your application, look into specifying days
|
||||
/// directly.
|
||||
#[derive(Clone, Debug)]
|
||||
#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
|
||||
pub struct XsdDuration(chrono::Duration);
|
||||
|
||||
/// The error type produced when an XsdDuration cannot be parsed
|
||||
|
|
|
@ -30,7 +30,9 @@
|
|||
/// (Not a Number). INF is considered to be greater than all other values, while -INF is less than
|
||||
/// all other values. The value NaN cannot be compared to any other values, although it equals
|
||||
/// itself.
|
||||
#[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize)]
|
||||
#[derive(
|
||||
Clone, Debug, Default, PartialEq, PartialOrd, Default, serde::Deserialize, serde::Serialize,
|
||||
)]
|
||||
#[serde(transparent)]
|
||||
pub struct XsdFloat(f64);
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
/// itself.
|
||||
///
|
||||
/// This type also validates that a float is at least 0.0
|
||||
#[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize)]
|
||||
#[derive(Clone, Debug, PartialEq, PartialOrd, Default, serde::Deserialize, serde::Serialize)]
|
||||
#[serde(transparent)]
|
||||
pub struct XsdNonNegativeFloat(f64);
|
||||
|
||||
|
|
|
@ -21,7 +21,18 @@
|
|||
///
|
||||
/// An xsd:nonNegativeInteger is a sequence of digits, optionally preceded by a + sign. Leading
|
||||
/// zeros are permitted, but decimal points are not.
|
||||
#[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize)]
|
||||
#[derive(
|
||||
Clone,
|
||||
Debug,
|
||||
Default,
|
||||
Eq,
|
||||
Hash,
|
||||
Ord,
|
||||
PartialEq,
|
||||
PartialOrd,
|
||||
serde::Deserialize,
|
||||
serde::Serialize,
|
||||
)]
|
||||
#[serde(transparent)]
|
||||
pub struct XsdNonNegativeInteger(u64);
|
||||
|
||||
|
|
|
@ -29,7 +29,18 @@
|
|||
/// The xsd:string type has a whiteSpace facet of preserve, which means that all whitespace
|
||||
/// characters (spaces, tabs, carriage returns, and line feeds) are preserved by the processor.
|
||||
/// This is in contrast to two types derived from it: normalizedString, and token.
|
||||
#[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize)]
|
||||
#[derive(
|
||||
Clone,
|
||||
Debug,
|
||||
Default,
|
||||
Eq,
|
||||
Hash,
|
||||
Ord,
|
||||
PartialEq,
|
||||
PartialOrd,
|
||||
serde::Deserialize,
|
||||
serde::Serialize,
|
||||
)]
|
||||
#[serde(transparent)]
|
||||
pub struct XsdString(String);
|
||||
|
||||
|
|
Loading…
Reference in a new issue