Open simpsoneric opened 6 months ago
On a related note, I was attempting to test this local crate version with my code but I am having conflicts for the ObjectIdentifier
type. I'm not sure how to handle the workspace dependencies and could use a pointer.
In my project's Cargo.toml
I have:
[dependencies]
x509-cert = { path = "../formats/x509-cert", features = ["builder"] }
const-oid = { path = "../formats/const-oid", features = ["db", "std"] }
But when I compile, I get errors like the following:
Compiling foo-bar v0.1.0
error[E0308]: mismatched types
--> src/foo.rs:97:36
|
97 | let r = a.find(|&av| av.oid == attr);
| ------ ^^^^ expected `ObjectIdentifier`, found `ObjectIdentifier<39>`
| |
| expected because this is `x509_cert::spki::ObjectIdentifier`
|
= note: `ObjectIdentifier<39>` and `ObjectIdentifier` have similar names, but are actually distinct types
note: `ObjectIdentifier<39>` is defined in crate `const_oid`
--> /home/foo/formats/const-oid/src/lib.rs:69:1
|
69 | pub struct ObjectIdentifier<const MAX_SIZE: usize = DEFAULT_MAX_SIZE> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `ObjectIdentifier` is defined in crate `const_oid`
--> /home/foo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/const-oid-0.9.6/src/lib.rs:81:1
|
81 | pub struct ObjectIdentifier {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: perhaps two different versions of crate `const_oid` are being used?
How do you handle local development for the crate? I'm not that familiar with rust workspace projects.
We're in the middle of transitioning over to a new release cycle, and x509-cert
has not yet been upgraded to use the new prerelease version of const-oid
As part of RFC 5280, there are a few types that are essentially aliases for
OBJECT IDENTIFIER
.One example is the
AttributeType
used in the x509 subject name:Since items like the
id-at-name
are not directly of typeOBJECT IDENTIFIER
, theoiddbgen
does not pick them up.I'm not sure about the best way to handle this, but I gave it a proof-of-concept at https://github.com/simpsoneric/formats/tree/object-id-aliases
The resulting
src/db/gen.rs
picks up the OIDs I was interested in.