Added several new types
This commit is contained in:
parent
0280f02bc0
commit
58c8f8d356
45 changed files with 1496 additions and 1 deletions
49
src/v1/schemas/galaxy_cluster_source.rs
Normal file
49
src/v1/schemas/galaxy_cluster_source.rs
Normal file
|
@ -0,0 +1,49 @@
|
|||
|
||||
default_derive!{
|
||||
pub struct GalaxyClusterSource {
|
||||
name: String
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<&str> for GalaxyClusterSource {
|
||||
type Error = &'static str;
|
||||
|
||||
fn try_from(value: &str) -> Result<Self, Self::Error> {
|
||||
if value.len() > 0 && value.len() <= 255 {
|
||||
Ok(GalaxyClusterSource { name: value.to_string() })
|
||||
}
|
||||
else {
|
||||
Err("Failed to parse GalaxyClusterSource")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Into<String> for GalaxyClusterSource {
|
||||
fn into(self) -> String {
|
||||
self.name
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn empty() {
|
||||
let id: Result<GalaxyClusterSource, _> = "".try_into();
|
||||
assert!(id.is_err())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn oversized() {
|
||||
let id: Result<GalaxyClusterSource, _> = format!("{:>256}", "Test").as_str().try_into();
|
||||
assert!(id.is_err())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn valid1() {
|
||||
let id: Result<GalaxyClusterSource, _> = "version".try_into();
|
||||
assert_eq!(id, Ok(GalaxyClusterSource { name: "version".to_string() }))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn valid2() {
|
||||
let id: Result<GalaxyClusterSource, _> = "1234".try_into();
|
||||
assert_eq!(id, Ok(GalaxyClusterSource { name: "1234".to_string() }))
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue