Skip to content

External Crates Exposed in our library #323

@DGonzalezVillal

Description

@DGonzalezVillal

As @mkulke pointed out, we have types external to our crate that are exposed publicly. Using cargo-check-external-types, I generated a list of these types. I’m sharing it here to start a discussion on how to handle them.

For example, error types could be replaced with strings, but things like Serialize and Deserialize aren’t as straightforward — we may need to consider keeping those exposed.

Here’s the list:

Crate Type Used In
bincode bincode::error::ErrorKind src/error.rs:1003:18
bincode bincode::error::ErrorKind src/error.rs:1098:1
bincode bincode::error::ErrorKind src/error.rs:725:18
bincode bincode::error::ErrorKind src/error.rs:754:1
bincode bincode::error::ErrorKind src/error.rs:929:18
bincode bincode::error::ErrorKind src/error.rs:981:1
bitfield bitfield::BitRange src/firmware/guest/types/snp.rs:765:1
bitfield bitfield::BitRange src/firmware/guest/types/snp.rs:765:1
bitfield bitfield::BitRange src/firmware/guest/types/snp.rs:894:1
bitfield bitfield::BitRange src/firmware/guest/types/snp.rs:894:1
bitfield bitfield::BitRange src/firmware/guest/types/snp.rs:95:1
bitfield bitfield::BitRange src/firmware/guest/types/snp.rs:95:1
bitfield bitfield::BitRange src/firmware/guest/types/snp.rs:985:1
bitfield bitfield::BitRange src/firmware/guest/types/snp.rs:985:1
bitfield bitfield::BitRange src/firmware/host/types/snp.rs:228:1
bitfield bitfield::BitRange src/firmware/host/types/snp.rs:228:1
bitfield bitfield::BitRange src/firmware/host/types/snp.rs:31:1
bitfield bitfield::BitRange src/firmware/host/types/snp.rs:31:1
bitfield bitfield::BitRange src/firmware/host/types/snp.rs:558:1
bitfield bitfield::BitRange src/firmware/host/types/snp.rs:558:1
bitfield bitfield::BitRange src/firmware/host/types/snp.rs:612:1
bitfield bitfield::BitRange src/firmware/host/types/snp.rs:612:1
bitfield bitfield::BitRangeMut src/firmware/guest/types/snp.rs:765:1
bitfield bitfield::BitRangeMut src/firmware/guest/types/snp.rs:765:1
bitfield bitfield::BitRangeMut src/firmware/guest/types/snp.rs:894:1
bitfield bitfield::BitRangeMut src/firmware/guest/types/snp.rs:894:1
bitfield bitfield::BitRangeMut src/firmware/guest/types/snp.rs:95:1
bitfield bitfield::BitRangeMut src/firmware/guest/types/snp.rs:95:1
bitfield bitfield::BitRangeMut src/firmware/guest/types/snp.rs:985:1
bitfield bitfield::BitRangeMut src/firmware/guest/types/snp.rs:985:1
bitfield bitfield::BitRangeMut src/firmware/host/types/snp.rs:228:1
bitfield bitfield::BitRangeMut src/firmware/host/types/snp.rs:228:1
bitfield bitfield::BitRangeMut src/firmware/host/types/snp.rs:31:1
bitfield bitfield::BitRangeMut src/firmware/host/types/snp.rs:31:1
bitfield bitfield::BitRangeMut src/firmware/host/types/snp.rs:558:1
bitfield bitfield::BitRangeMut src/firmware/host/types/snp.rs:558:1
bitfield bitfield::BitRangeMut src/firmware/host/types/snp.rs:612:1
bitfield bitfield::BitRangeMut src/firmware/host/types/snp.rs:612:1
bitflags bitflags::iter::Iter src/firmware/linux/host/types/sev.rs:11:1
bitflags bitflags::iter::Iter src/firmware/linux/host/types/sev.rs:11:1
bitflags bitflags::iter::Iter src/launch/sev.rs:250:1
bitflags bitflags::iter::Iter src/launch/sev.rs:250:1
bitflags bitflags::iter::Iter src/launch/sev.rs:396:1
bitflags bitflags::iter::Iter src/launch/sev.rs:396:1
bitflags bitflags::iter::Iter src/launch/snp.rs:222:1
bitflags bitflags::iter::Iter src/launch/snp.rs:222:1
bitflags bitflags::iter::IterNames src/firmware/linux/host/types/sev.rs:11:1
bitflags bitflags::iter::IterNames src/launch/sev.rs:250:1
bitflags bitflags::iter::IterNames src/launch/sev.rs:396:1
bitflags bitflags::iter::IterNames src/launch/snp.rs:222:1
bitflags bitflags::traits::Flags src/firmware/linux/host/types/sev.rs:11:1
bitflags bitflags::traits::Flags src/launch/sev.rs:250:1
bitflags bitflags::traits::Flags src/launch/sev.rs:396:1
bitflags bitflags::traits::Flags src/launch/snp.rs:222:1
bitflags bitflags::traits::PublicFlags src/firmware/linux/host/types/sev.rs:11:1
bitflags bitflags::traits::PublicFlags src/launch/sev.rs:250:1
bitflags bitflags::traits::PublicFlags src/launch/sev.rs:396:1
bitflags bitflags::traits::PublicFlags src/launch/snp.rs:222:1
codicon codicon::Decoder src/certs/sev/ca/cert/mod.rs:84:1
codicon codicon::Decoder src/certs/sev/ca/chain.rs:20:1
codicon codicon::Decoder src/certs/sev/chain.rs:20:1
codicon codicon::Decoder src/certs/sev/sev/cert/mod.rs:75:1
codicon codicon::Decoder src/certs/sev/sev/chain.rs:26:1
codicon codicon::Decoder src/firmware/host/types/sev.rs:80:1
codicon codicon::Decoder src/launch/sev.rs:380:1
codicon codicon::Decoder src/launch/sev.rs:457:1
codicon codicon::Decoder src/launch/sev.rs:488:1
codicon codicon::Decoder src/vmsa/mod.rs:307:1
codicon codicon::Encoder src/certs/sev/ca/cert/mod.rs:97:1
codicon codicon::Encoder src/certs/sev/ca/chain.rs:38:1
codicon codicon::Encoder src/certs/sev/chain.rs:30:1
codicon codicon::Encoder src/certs/sev/sev/cert/mod.rs:88:1
codicon codicon::Encoder src/certs/sev/sev/chain.rs:54:1
codicon codicon::Encoder src/firmware/host/types/sev.rs:88:1
codicon codicon::Encoder src/launch/sev.rs:388:1
codicon codicon::Encoder src/launch/sev.rs:468:1
codicon codicon::Encoder src/launch/sev.rs:496:1
codicon codicon::Encoder src/vmsa/mod.rs:315:1
hex hex::error::FromHexError src/error.rs:1009:18
hex hex::error::FromHexError src/error.rs:1110:1
serde serde::de::Deserialize src/certs/sev/ca/cert/mod.rs:120:1
serde serde::de::Deserialize src/certs/sev/ca/chain.rs:11:32
serde serde::de::Deserialize src/certs/sev/chain.rs:11:32
serde serde::de::Deserialize src/certs/sev/sev/cert/mod.rs:111:1
serde serde::de::Deserialize src/certs/sev/sev/cert/v1/sig/ecdsa.rs:14:32
serde serde::de::Deserialize src/certs/sev/sev/chain.rs:11:32
serde serde::de::Deserialize src/certs/snp/ecdsa/mod.rs:20:32
serde serde::de::Deserialize src/firmware/guest/types/snp.rs:128:30
serde serde::de::Deserialize src/firmware/guest/types/snp.rs:229:39
serde serde::de::Deserialize src/firmware/guest/types/snp.rs:791:14
serde serde::de::Deserialize src/firmware/guest/types/snp.rs:907:14
serde serde::de::Deserialize src/firmware/guest/types/snp.rs:996:14
serde serde::de::Deserialize src/firmware/host/types/sev.rs:116:30
serde serde::de::Deserialize src/firmware/host/types/sev.rs:39:82
serde serde::de::Deserialize src/firmware/host/types/sev.rs:65:82
serde serde::de::Deserialize src/firmware/host/types/snp.rs:155:39
serde serde::de::Deserialize src/firmware/host/types/snp.rs:459:82
serde serde::de::Deserialize src/firmware/host/types/snp.rs:50:39
serde serde::de::Deserialize src/firmware/host/types/snp.rs:566:53
serde serde::de::Deserialize src/launch/sev.rs:304:1
serde serde::de::Deserialize src/launch/sev.rs:318:54
serde serde::de::Deserialize src/launch/sev.rs:344:56
serde serde::de::Deserialize src/launch/sev.rs:368:45
serde serde::de::Deserialize src/launch/sev.rs:419:1
serde serde::de::Deserialize src/launch/sev.rs:433:45
serde serde::de::Deserialize src/launch/sev.rs:448:39
serde serde::de::Deserialize src/launch/sev.rs:479:45
serde serde::de::Deserialize src/launch/snp.rs:150:48
serde serde::de::Deserialize src/launch/snp.rs:175:45
serde serde::de::Deserialize src/launch/snp.rs:199:45
serde serde::de::Deserialize src/launch/snp.rs:249:1
serde serde::de::Deserialize src/vmsa/mod.rs:52:30
serde serde::de::Deserialize src/vmsa/mod.rs:73:43
serde serde::ser::Serialize src/certs/sev/ca/cert/mod.rs:132:1
serde serde::ser::Serialize src/certs/sev/ca/chain.rs:11:45
serde serde::ser::Serialize src/certs/sev/chain.rs:11:45
serde serde::ser::Serialize src/certs/sev/sev/cert/mod.rs:123:1
serde serde::ser::Serialize src/certs/sev/sev/cert/v1/sig/ecdsa.rs:14:45
serde serde::ser::Serialize src/certs/sev/sev/chain.rs:11:45
serde serde::ser::Serialize src/certs/snp/ecdsa/mod.rs:20:45
serde serde::ser::Serialize src/firmware/guest/types/snp.rs:128:43
serde serde::ser::Serialize src/firmware/guest/types/snp.rs:229:52
serde serde::ser::Serialize src/firmware/guest/types/snp.rs:791:55
serde serde::ser::Serialize src/firmware/guest/types/snp.rs:907:40
serde serde::ser::Serialize src/firmware/guest/types/snp.rs:996:72
serde serde::ser::Serialize src/firmware/host/types/sev.rs:116:19
serde serde::ser::Serialize src/firmware/host/types/sev.rs:39:71
serde serde::ser::Serialize src/firmware/host/types/sev.rs:65:71
serde serde::ser::Serialize src/firmware/host/types/snp.rs:155:52
serde serde::ser::Serialize src/firmware/host/types/snp.rs:459:71
serde serde::ser::Serialize src/firmware/host/types/snp.rs:50:52
serde serde::ser::Serialize src/firmware/host/types/snp.rs:566:42
serde serde::ser::Serialize src/launch/sev.rs:276:1
serde serde::ser::Serialize src/launch/sev.rs:318:67
serde serde::ser::Serialize src/launch/sev.rs:344:45
serde serde::ser::Serialize src/launch/sev.rs:368:58
serde serde::ser::Serialize src/launch/sev.rs:406:1
serde serde::ser::Serialize src/launch/sev.rs:433:58
serde serde::ser::Serialize src/launch/sev.rs:448:52
serde serde::ser::Serialize src/launch/sev.rs:479:58
serde serde::ser::Serialize src/launch/snp.rs:150:61
serde serde::ser::Serialize src/launch/snp.rs:175:58
serde serde::ser::Serialize src/launch/snp.rs:199:58
serde serde::ser::Serialize src/launch/snp.rs:240:1
serde serde::ser::Serialize src/vmsa/mod.rs:52:19
serde serde::ser::Serialize src/vmsa/mod.rs:73:32
uuid uuid::Uuid src/firmware/host/types/snp.rs:107:1
uuid uuid::Uuid src/firmware/host/types/snp.rs:178:5
uuid uuid::Uuid src/firmware/host/types/snp.rs:73:11
uuid uuid::error::Error src/error.rs:1000:15
uuid uuid::error::Error src/error.rs:1092:1
uuid uuid::error::Error src/error.rs:531:15
uuid uuid::error::Error src/error.rs:593:1
uuid uuid::error::Error src/firmware/host/types/snp.rs:108:5
uuid uuid::error::Error src/firmware/host/types/snp.rs:178:5
uuid uuid::error::Error src/firmware/host/types/snp.rs:93:5

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions