pub struct PluginCompatibility { /* private fields */ }Expand description
Explicit runtime requirements declared by one product plugin.
The framework and product answer different compatibility questions:
- scs-sdk decides which foreign API layouts it can decode soundly;
- this declaration states which decoded API and game capabilities the product actually needs;
- SCS chooses the concrete API version by calling the exported initializer from newest to oldest.
Ordinary users therefore install one plugin binary and never select an SDK distribution or ABI version manually.
Implementations§
Source§impl PluginCompatibility
impl PluginCompatibility
Sourcepub const fn new(
minimum_telemetry_api: TelemetryApiVersion,
games: &'static [GameCompatibility],
) -> Self
pub const fn new( minimum_telemetry_api: TelemetryApiVersion, games: &'static [GameCompatibility], ) -> Self
Creates an explicit product compatibility declaration.
The games slice must contain at least one recognized game, must not
contain duplicate game entries, and must not use Game::Other. These
invariants are checked before product initialization so a malformed
declaration never reaches SDK registration.
Sourcepub const fn minimum_telemetry_api(self) -> TelemetryApiVersion
pub const fn minimum_telemetry_api(self) -> TelemetryApiVersion
Oldest Telemetry API whose capabilities the product requires.
Sourcepub const fn games(self) -> &'static [GameCompatibility]
pub const fn games(self) -> &'static [GameCompatibility]
Per-game schema requirements accepted by the product.
Trait Implementations§
Source§impl Clone for PluginCompatibility
impl Clone for PluginCompatibility
Source§fn clone(&self) -> PluginCompatibility
fn clone(&self) -> PluginCompatibility
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for PluginCompatibility
Source§impl Debug for PluginCompatibility
impl Debug for PluginCompatibility
impl Eq for PluginCompatibility
Source§impl PartialEq for PluginCompatibility
impl PartialEq for PluginCompatibility
impl StructuralPartialEq for PluginCompatibility
Auto Trait Implementations§
impl Freeze for PluginCompatibility
impl RefUnwindSafe for PluginCompatibility
impl Send for PluginCompatibility
impl Sync for PluginCompatibility
impl Unpin for PluginCompatibility
impl UnsafeUnpin for PluginCompatibility
impl UnwindSafe for PluginCompatibility
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more