Skip to content

Commit a3ea659

Browse files
authored
der: consolidate bytes/string modules (#1920)
Elsewhere we have single modules containing both reference types and their equivalent allocating types. This follows the same pattern. Also renames (non-breaking, internal types); - `StrRef` => `StringRef` - `StrOwned` => `StringOwned`
1 parent e5bcd4f commit a3ea659

13 files changed

+587
-596
lines changed

der/src/asn1/ia5_string.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! ASN.1 `IA5String` support.
22
3-
use crate::{FixedTag, Result, StrRef, Tag, asn1::AnyRef};
3+
use crate::{FixedTag, Result, StringRef, Tag, asn1::AnyRef};
44
use core::{fmt, ops::Deref};
55

66
macro_rules! impl_ia5_string {
@@ -37,7 +37,7 @@ macro_rules! impl_ia5_string {
3737
#[derive(Copy, Clone, Eq, PartialEq, PartialOrd, Ord)]
3838
pub struct Ia5StringRef<'a> {
3939
/// Inner value
40-
inner: StrRef<'a>,
40+
inner: StringRef<'a>,
4141
}
4242

4343
impl<'a> Ia5StringRef<'a> {
@@ -53,7 +53,7 @@ impl<'a> Ia5StringRef<'a> {
5353
return Err(Self::TAG.value_error().into());
5454
}
5555

56-
StrRef::from_bytes(input)
56+
StringRef::from_bytes(input)
5757
.map(|inner| Self { inner })
5858
.map_err(|_| Self::TAG.value_error().into())
5959
}
@@ -62,7 +62,7 @@ impl<'a> Ia5StringRef<'a> {
6262
impl_ia5_string!(Ia5StringRef<'a>, 'a);
6363

6464
impl<'a> Deref for Ia5StringRef<'a> {
65-
type Target = StrRef<'a>;
65+
type Target = StringRef<'a>;
6666

6767
fn deref(&self) -> &Self::Target {
6868
&self.inner
@@ -88,7 +88,7 @@ pub use self::allocation::Ia5String;
8888
mod allocation {
8989
use super::Ia5StringRef;
9090
use crate::{
91-
Error, FixedTag, Result, StrOwned, Tag,
91+
Error, FixedTag, Result, StringOwned, Tag,
9292
asn1::AnyRef,
9393
referenced::{OwnedToRef, RefToOwned},
9494
};
@@ -108,7 +108,7 @@ mod allocation {
108108
#[derive(Clone, Eq, PartialEq, PartialOrd, Ord)]
109109
pub struct Ia5String {
110110
/// Inner value
111-
inner: StrOwned,
111+
inner: StringOwned,
112112
}
113113

114114
impl Ia5String {
@@ -120,7 +120,7 @@ mod allocation {
120120
let input = input.as_ref();
121121
Ia5StringRef::new(input)?;
122122

123-
StrOwned::from_bytes(input)
123+
StringOwned::from_bytes(input)
124124
.map(|inner| Self { inner })
125125
.map_err(|_| Self::TAG.value_error().into())
126126
}
@@ -129,7 +129,7 @@ mod allocation {
129129
impl_ia5_string!(Ia5String);
130130

131131
impl Deref for Ia5String {
132-
type Target = StrOwned;
132+
type Target = StringOwned;
133133

134134
fn deref(&self) -> &Self::Target {
135135
&self.inner
@@ -179,7 +179,7 @@ mod allocation {
179179
fn try_from(input: String) -> Result<Self> {
180180
Ia5StringRef::new(&input)?;
181181

182-
StrOwned::new(input)
182+
StringOwned::new(input)
183183
.map(|inner| Self { inner })
184184
.map_err(|_| Self::TAG.value_error().into())
185185
}

der/src/asn1/printable_string.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! ASN.1 `PrintableString` support.
22
3-
use crate::{FixedTag, Result, StrRef, Tag, asn1::AnyRef};
3+
use crate::{FixedTag, Result, StringRef, Tag, asn1::AnyRef};
44
use core::{fmt, ops::Deref};
55

66
macro_rules! impl_printable_string {
@@ -54,7 +54,7 @@ macro_rules! impl_printable_string {
5454
#[derive(Copy, Clone, Eq, PartialEq, PartialOrd, Ord)]
5555
pub struct PrintableStringRef<'a> {
5656
/// Inner value
57-
inner: StrRef<'a>,
57+
inner: StringRef<'a>,
5858
}
5959

6060
impl<'a> PrintableStringRef<'a> {
@@ -87,7 +87,7 @@ impl<'a> PrintableStringRef<'a> {
8787
}
8888
}
8989

90-
StrRef::from_bytes(input)
90+
StringRef::from_bytes(input)
9191
.map(|inner| Self { inner })
9292
.map_err(|_| Self::TAG.value_error().into())
9393
}
@@ -96,7 +96,7 @@ impl<'a> PrintableStringRef<'a> {
9696
impl_printable_string!(PrintableStringRef<'a>, 'a);
9797

9898
impl<'a> Deref for PrintableStringRef<'a> {
99-
type Target = StrRef<'a>;
99+
type Target = StringRef<'a>;
100100

101101
fn deref(&self) -> &Self::Target {
102102
&self.inner
@@ -122,7 +122,7 @@ mod allocation {
122122
use super::PrintableStringRef;
123123

124124
use crate::{
125-
BytesRef, Error, FixedTag, Result, StrOwned, Tag,
125+
BytesRef, Error, FixedTag, Result, StringOwned, Tag,
126126
asn1::AnyRef,
127127
referenced::{OwnedToRef, RefToOwned},
128128
};
@@ -159,7 +159,7 @@ mod allocation {
159159
#[derive(Clone, Eq, PartialEq, PartialOrd, Ord)]
160160
pub struct PrintableString {
161161
/// Inner value
162-
inner: StrOwned,
162+
inner: StringOwned,
163163
}
164164

165165
impl PrintableString {
@@ -171,7 +171,7 @@ mod allocation {
171171
let input = input.as_ref();
172172
PrintableStringRef::new(input)?;
173173

174-
StrOwned::from_bytes(input)
174+
StringOwned::from_bytes(input)
175175
.map(|inner| Self { inner })
176176
.map_err(|_| Self::TAG.value_error().into())
177177
}
@@ -180,7 +180,7 @@ mod allocation {
180180
impl_printable_string!(PrintableString);
181181

182182
impl Deref for PrintableString {
183-
type Target = StrOwned;
183+
type Target = StringOwned;
184184

185185
fn deref(&self) -> &Self::Target {
186186
&self.inner
@@ -190,7 +190,7 @@ mod allocation {
190190
impl<'a> From<PrintableStringRef<'a>> for PrintableString {
191191
fn from(value: PrintableStringRef<'a>) -> PrintableString {
192192
let inner =
193-
StrOwned::from_bytes(value.inner.as_bytes()).expect("Invalid PrintableString");
193+
StringOwned::from_bytes(value.inner.as_bytes()).expect("Invalid PrintableString");
194194
Self { inner }
195195
}
196196
}
@@ -234,7 +234,7 @@ mod allocation {
234234
fn try_from(input: String) -> Result<Self> {
235235
PrintableStringRef::new(&input)?;
236236

237-
StrOwned::new(input)
237+
StringOwned::new(input)
238238
.map(|inner| Self { inner })
239239
.map_err(|_| Self::TAG.value_error().into())
240240
}

der/src/asn1/real.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
)]
99

1010
use crate::{
11-
BytesRef, DecodeValue, EncodeValue, Error, FixedTag, Header, Length, Reader, Result, StrRef,
11+
BytesRef, DecodeValue, EncodeValue, Error, FixedTag, Header, Length, Reader, Result, StringRef,
1212
Tag, Writer,
1313
};
1414

@@ -75,7 +75,7 @@ impl<'a> DecodeValue<'a> for f64 {
7575
_ => Err(reader.error(Tag::Real.value_error())),
7676
}
7777
} else {
78-
let astr = StrRef::from_bytes(&bytes[1..])?;
78+
let astr = StringRef::from_bytes(&bytes[1..])?;
7979
match astr.inner.parse::<f64>() {
8080
Ok(val) => Ok(val),
8181
// Real related error: encoding not supported or malformed

der/src/asn1/teletex_string.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! ASN.1 `TeletexString` support.
22
//!
3-
use crate::{FixedTag, Result, StrRef, Tag, asn1::AnyRef};
3+
use crate::{FixedTag, Result, StringRef, Tag, asn1::AnyRef};
44
use core::{fmt, ops::Deref};
55

66
macro_rules! impl_teletex_string {
@@ -44,7 +44,7 @@ macro_rules! impl_teletex_string {
4444
#[derive(Copy, Clone, Eq, PartialEq, PartialOrd, Ord)]
4545
pub struct TeletexStringRef<'a> {
4646
/// Inner value
47-
inner: StrRef<'a>,
47+
inner: StringRef<'a>,
4848
}
4949

5050
impl<'a> TeletexStringRef<'a> {
@@ -60,7 +60,7 @@ impl<'a> TeletexStringRef<'a> {
6060
return Err(Self::TAG.value_error().into());
6161
}
6262

63-
StrRef::from_bytes(input)
63+
StringRef::from_bytes(input)
6464
.map(|inner| Self { inner })
6565
.map_err(|_| Self::TAG.value_error().into())
6666
}
@@ -69,7 +69,7 @@ impl<'a> TeletexStringRef<'a> {
6969
impl_teletex_string!(TeletexStringRef<'a>, 'a);
7070

7171
impl<'a> Deref for TeletexStringRef<'a> {
72-
type Target = StrRef<'a>;
72+
type Target = StringRef<'a>;
7373

7474
fn deref(&self) -> &Self::Target {
7575
&self.inner
@@ -96,7 +96,7 @@ mod allocation {
9696
use super::TeletexStringRef;
9797

9898
use crate::{
99-
BytesRef, Error, FixedTag, Result, StrOwned, Tag,
99+
BytesRef, Error, FixedTag, Result, StringOwned, Tag,
100100
asn1::AnyRef,
101101
referenced::{OwnedToRef, RefToOwned},
102102
};
@@ -120,7 +120,7 @@ mod allocation {
120120
#[derive(Clone, Eq, PartialEq, PartialOrd, Ord)]
121121
pub struct TeletexString {
122122
/// Inner value
123-
inner: StrOwned,
123+
inner: StringOwned,
124124
}
125125

126126
impl TeletexString {
@@ -133,7 +133,7 @@ mod allocation {
133133

134134
TeletexStringRef::new(input)?;
135135

136-
StrOwned::from_bytes(input)
136+
StringOwned::from_bytes(input)
137137
.map(|inner| Self { inner })
138138
.map_err(|_| Self::TAG.value_error().into())
139139
}
@@ -142,7 +142,7 @@ mod allocation {
142142
impl_teletex_string!(TeletexString);
143143

144144
impl Deref for TeletexString {
145-
type Target = StrOwned;
145+
type Target = StringOwned;
146146

147147
fn deref(&self) -> &Self::Target {
148148
&self.inner
@@ -152,7 +152,7 @@ mod allocation {
152152
impl<'a> From<TeletexStringRef<'a>> for TeletexString {
153153
fn from(value: TeletexStringRef<'a>) -> TeletexString {
154154
let inner =
155-
StrOwned::from_bytes(value.inner.as_bytes()).expect("Invalid TeletexString");
155+
StringOwned::from_bytes(value.inner.as_bytes()).expect("Invalid TeletexString");
156156
Self { inner }
157157
}
158158
}
@@ -196,7 +196,7 @@ mod allocation {
196196
fn try_from(input: String) -> Result<Self> {
197197
TeletexStringRef::new(&input)?;
198198

199-
StrOwned::new(input)
199+
StringOwned::new(input)
200200
.map(|inner| Self { inner })
201201
.map_err(|_| Self::TAG.value_error().into())
202202
}

der/src/asn1/utf8_string.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//! ASN.1 `UTF8String` support.
22
33
use crate::{
4-
EncodeValue, Error, FixedTag, Length, Result, StrRef, Tag, Writer, asn1::AnyRef,
4+
EncodeValue, Error, FixedTag, Length, Result, StringRef, Tag, Writer, asn1::AnyRef,
55
ord::OrdIsValueOrd,
66
};
77
use core::{fmt, ops::Deref, str};
@@ -29,7 +29,7 @@ use {
2929
#[derive(Copy, Clone, Eq, PartialEq, PartialOrd, Ord)]
3030
pub struct Utf8StringRef<'a> {
3131
/// Inner value
32-
inner: StrRef<'a>,
32+
inner: StringRef<'a>,
3333
}
3434

3535
impl<'a> Utf8StringRef<'a> {
@@ -38,14 +38,14 @@ impl<'a> Utf8StringRef<'a> {
3838
where
3939
T: AsRef<[u8]> + ?Sized,
4040
{
41-
StrRef::from_bytes(input.as_ref()).map(|inner| Self { inner })
41+
StringRef::from_bytes(input.as_ref()).map(|inner| Self { inner })
4242
}
4343
}
4444

4545
impl_string_type!(Utf8StringRef<'a>, 'a);
4646

4747
impl<'a> Deref for Utf8StringRef<'a> {
48-
type Target = StrRef<'a>;
48+
type Target = StringRef<'a>;
4949

5050
fn deref(&self) -> &Self::Target {
5151
&self.inner

der/src/asn1/videotex_string.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! ASN.1 `VideotexString` support.
22
3-
use crate::{FixedTag, Result, StrRef, Tag, asn1::AnyRef};
3+
use crate::{FixedTag, Result, StringRef, Tag, asn1::AnyRef};
44
use core::{fmt, ops::Deref};
55

66
/// ASN.1 `VideotexString` type.
@@ -20,7 +20,7 @@ use core::{fmt, ops::Deref};
2020
#[derive(Copy, Clone, Eq, PartialEq, PartialOrd, Ord)]
2121
pub struct VideotexStringRef<'a> {
2222
/// Inner value
23-
inner: StrRef<'a>,
23+
inner: StringRef<'a>,
2424
}
2525

2626
impl<'a> VideotexStringRef<'a> {
@@ -37,7 +37,7 @@ impl<'a> VideotexStringRef<'a> {
3737
return Err(Self::TAG.value_error().into());
3838
}
3939

40-
StrRef::from_bytes(input)
40+
StringRef::from_bytes(input)
4141
.map(|inner| Self { inner })
4242
.map_err(|_| Self::TAG.value_error().into())
4343
}
@@ -46,7 +46,7 @@ impl<'a> VideotexStringRef<'a> {
4646
impl_string_type!(VideotexStringRef<'a>, 'a);
4747

4848
impl<'a> Deref for VideotexStringRef<'a> {
49-
type Target = StrRef<'a>;
49+
type Target = StringRef<'a>;
5050

5151
fn deref(&self) -> &Self::Target {
5252
&self.inner

0 commit comments

Comments
 (0)