Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7abffc1

Browse files
committed
Finish 0.2.1
1 parent 6406712 commit 7abffc1

File tree

3 files changed

+33
-9
lines changed

3 files changed

+33
-9
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,15 @@
33
All notable changes to this project will be documented in this file.
44
This project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
55

6+
## [0.2.1] - 2025-02-22
7+
8+
[0.2.1]: https://github.com/sunsided/docker-image-rs/releases/tag/v0.2.1
9+
10+
### Added
11+
12+
- Added explicit implementation of `TryFrom<&str>`.
13+
14+
615
## [0.2.0] - 2025-02-22
716

817
[0.2.0]: https://github.com/sunsided/docker-image-rs/releases/tag/v0.2.0

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "docker-image"
3-
version = "0.2.0"
3+
version = "0.2.1"
44
description = "A simple, no_std-compatible Docker image reference parser with strict adherence to Docker's naming rules."
55
authors = ["Markus Mayer"]
66
homepage = "https://github.com/sunsided/docker-image-rs"

src/lib.rs

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,22 @@ impl FromStr for DockerImage {
138138
}
139139
}
140140

141+
impl TryFrom<String> for DockerImage {
142+
type Error = DockerImageError;
143+
144+
fn try_from(value: String) -> Result<Self, Self::Error> {
145+
value.parse()
146+
}
147+
}
148+
149+
impl TryFrom<&str> for DockerImage {
150+
type Error = DockerImageError;
151+
152+
fn try_from(value: &str) -> Result<Self, Self::Error> {
153+
value.parse()
154+
}
155+
}
156+
141157
impl DockerImage {
142158
/// Parses a Docker image string into its structured components.
143159
///
@@ -160,7 +176,7 @@ impl DockerImage {
160176
impl serde::Serialize for DockerImage {
161177
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
162178
where
163-
S: serde::ser::Serializer
179+
S: serde::ser::Serializer,
164180
{
165181
serializer.serialize_str(&self.to_string())
166182
}
@@ -170,12 +186,10 @@ impl serde::Serialize for DockerImage {
170186
impl<'de> serde::Deserialize<'de> for DockerImage {
171187
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
172188
where
173-
D: serde::de::Deserializer<'de>
189+
D: serde::de::Deserializer<'de>,
174190
{
175191
let docker_image_str = <String as serde::Deserialize>::deserialize(deserializer)?;
176-
docker_image_str
177-
.parse()
178-
.map_err(serde::de::Error::custom)
192+
docker_image_str.parse().map_err(serde::de::Error::custom)
179193
}
180194
}
181195

@@ -500,7 +514,6 @@ mod tests {
500514
);
501515
}
502516

503-
504517
#[test]
505518
#[cfg(feature = "serde-serialize")]
506519
fn test_serialize_dockerimage_to_json() {
@@ -511,7 +524,8 @@ mod tests {
511524
name: "library/image-name".to_string(),
512525
tag: Some("v1.0.0".to_string()),
513526
digest: Some(
514-
"sha256:deadbeefcafe1234567890abcdef1234567890abcdef1234567890abcdef1234".to_string(),
527+
"sha256:deadbeefcafe1234567890abcdef1234567890abcdef1234567890abcdef1234"
528+
.to_string(),
515529
),
516530
};
517531

@@ -538,7 +552,8 @@ mod tests {
538552
name: "library/image-name".to_string(),
539553
tag: Some("v1.0.0".to_string()),
540554
digest: Some(
541-
"sha256:deadbeefcafe1234567890abcdef1234567890abcdef1234567890abcdef1234".to_string()
555+
"sha256:deadbeefcafe1234567890abcdef1234567890abcdef1234567890abcdef1234"
556+
.to_string()
542557
),
543558
}
544559
);

0 commit comments

Comments
 (0)