Skip to content

Commit 0551dc3

Browse files
committed
Implement methods directly not via trait
1 parent 6e0ed47 commit 0551dc3

File tree

3 files changed

+18
-25
lines changed

3 files changed

+18
-25
lines changed

security-framework/src/item.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,15 +152,24 @@ pub struct ItemSearchOptions {
152152
}
153153

154154
#[cfg(target_os = "macos")]
155-
impl crate::ItemSearchOptionsInternals for ItemSearchOptions {
155+
impl ItemSearchOptions {
156+
/// Search within the specified macOS keychains.
157+
///
158+
/// If this is not called, the default keychain will be searched.
156159
#[inline]
157-
fn keychains(&mut self, keychains: &[SecKeychain]) -> &mut Self {
160+
pub fn keychains(&mut self, keychains: &[SecKeychain]) -> &mut Self {
158161
self.keychains = Some(CFArray::from_CFTypes(keychains));
159162
self
160163
}
161164

165+
/// Only search the protected data macOS keychains.
166+
///
167+
/// Has no effect if a legacy keychain has been explicitly specified
168+
/// using [keychains](ItemSearchOptions::keychains).
169+
///
170+
/// Has no effect except in sandboxed applications on macOS 10.15 and above
162171
#[inline]
163-
fn ignore_legacy_keychains(&mut self) -> &mut Self {
172+
pub fn ignore_legacy_keychains(&mut self) -> &mut Self {
164173
self.ignore_legacy_keychains = true;
165174
self
166175
}

security-framework/src/lib.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,6 @@ trait Pkcs12ImportOptionsInternals {
6161
fn access(&mut self, access: SecAccess) -> &mut Self;
6262
}
6363

64-
#[cfg(target_os = "macos")]
65-
trait ItemSearchOptionsInternals {
66-
fn keychains(&mut self, keychains: &[SecKeychain]) -> &mut Self;
67-
fn ignore_legacy_keychains(&mut self) -> &mut Self;
68-
}
69-
7064
trait AsInner {
7165
type Inner;
7266
fn as_inner(&self) -> Self::Inner;

security-framework/src/os/macos/item.rs

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,34 @@
11
//! OSX specific functionality for items.
22
use crate::item::ItemSearchOptions;
33
use crate::os::macos::keychain::SecKeychain;
4-
use crate::ItemSearchOptionsInternals;
54

65
// Moved to crate::Key
76
pub use crate::key::KeyType;
87

9-
/// An extension trait adding OSX specific functionality to `ItemSearchOptions`.
8+
// TODO: mark as deprecated
9+
#[doc(hidden)]
10+
/// An obsolete trait for `ItemSearchOptions`. Use methods on `ItemSearchOptions` directly.
1011
pub trait ItemSearchOptionsExt {
1112
/// Search within the specified keychains.
1213
///
1314
/// If this is not called, the default keychain will be searched.
1415
fn keychains(&mut self, keychains: &[SecKeychain]) -> &mut Self;
1516

16-
/// Only search the protected data keychains.
17-
///
18-
/// Has no effect if a legacy keychain has been explicitly specified
19-
/// using [keychains](ItemSearchOptionsExt::keychains).
20-
///
21-
/// Has no effect except in sandboxed applications on macOS 10.15 and above
22-
fn ignore_legacy_keychains(&mut self) -> &mut Self;
17+
// Do not extend this trait; use `impl ItemSearchOptions` directly
2318
}
2419

2520
impl ItemSearchOptionsExt for ItemSearchOptions {
26-
#[inline(always)]
2721
fn keychains(&mut self, keychains: &[SecKeychain]) -> &mut Self {
28-
ItemSearchOptionsInternals::keychains(self, keychains)
22+
ItemSearchOptions::keychains(self, keychains)
2923
}
3024

31-
#[inline(always)]
32-
fn ignore_legacy_keychains(&mut self) -> &mut Self {
33-
ItemSearchOptionsInternals::ignore_legacy_keychains(self)
34-
}
25+
// Do not extend this trait; use `impl ItemSearchOptions` directly
3526
}
3627

3728
#[cfg(test)]
3829
mod test {
3930
use crate::item::*;
4031
use crate::os::macos::certificate::SecCertificateExt;
41-
use crate::os::macos::item::ItemSearchOptionsExt;
4232
use crate::os::macos::test::keychain;
4333
use tempfile::tempdir;
4434

0 commit comments

Comments
 (0)