Struct simics_package::spec::PackageSpec
source · pub struct PackageSpec {Show 19 fields
pub package_name: String,
pub package_number: isize,
pub name: String,
pub description: String,
pub host: String,
pub version: String,
pub build_id: isize,
pub build_id_namespace: String,
pub confidentiality: String,
pub files: Vec<(String, String)>,
pub typ: String,
pub disabled: bool,
pub doc_title: String,
pub make_targets: Vec<String>,
pub include_release_notes: bool,
pub ip_plans: Vec<String>,
pub legacy_doc_make_targets: Vec<String>,
pub release_notes: Vec<String>,
pub access_labels: Vec<String>,
}
Expand description
Implements the Schema for package-specs.json
{ “$schema”: “https://json-schema.org/draft/2020-12/schema”, “type”: “array”, “title”: “Simics Package Specification file”, “items”: { “type”: “object”, “required”: [ “package-name”, “package-number”, “name”, “description”, “host”, “version”, “build-id”, “build-id-namespace”, “confidentiality”, “files” ], “properties”: { “package-name”: { “type”: “string” }, “package-number”: { “anyOf”: [{“type”: “integer”}, {“type”: “null”}] }, “name”: { “type”: “string” }, “description”: { “type”: “string” }, “host”: { “type”: “string” }, “version”: { “type”: “string” }, “build-id”: { “type”: “integer” }, “build-id-namespace”: { “type”: “string” }, “confidentiality”: { “type”: “string” }, “files”: { “type”: “object”, “patternProperties”: { “^[^\:]/$”: { “type”: “object”, “properties”: { “source-directory”: { “type”: “string” }, “file-list”: { “type”: “string” }, “suffixes”: { “type”: “array”, “items”: { “type”: “string” } } } }, “^[^\:][^/]$”: { “type”: “string” } } }, “type”: { “enum”: [“addon”, “base”] }, “disabled”: { “type”: “boolean” }, “doc-title”: { “anyOf”: [{“type”: “string”}, {“type”: “null”}] }, “make-targets”: { “type”: “array”, “items”: { “type”: “string” } } } } }
Fields§
§package_name: String
The one-word alphanumeric package name, e.g. ‘TSFFS-Fuzzer’ in Camel-Kebab-Case
package_number: isize
The package number. This is the only field that must be included in the crate metadata. It must be globally unique.
name: String
The human-readable name of the package e.g. ‘TSFFS Fuzzer’, the package name with dashes replaced with spaces.
description: String
A description of the package, e.g. ‘TSFFS: The Target Software Fuzzer for SIMICS’
host: String
The host this package is built for, either ‘win64’ or ‘linux64’
version: String
The version number for this package, e.g. ‘6.0.2’ or ‘6.0.pre6’
build_id: isize
The build ID for this package, later versions should have later IDs. This number should
monotonically increase and only has meaning between two packages with the same
build_id_namespace
build_id_namespace: String
An identifier for the build ID, e.g. ‘tsffs’
confidentiality: String
The confidentiality of the package, e.g. ‘Public’, but can be any string value based on the authors confidentiality requirements.
files: Vec<(String, String)>
A mapping from the path in the package to the full path on disk of the file.
typ: String
Either “addon” or “base”, all packages should be ‘addon’
disabled: bool
Whether the package is disabled, default is not disabled
doc_title: String
The title used in documentation for the package
make_targets: Vec<String>
The list of targets to build for this package
include_release_notes: bool
Whether release notes should be included in the package, not included by default
ip_plans: Vec<String>
Plans for the IP of this package. Typically empty.
legacy_doc_make_targets: Vec<String>
Legacy support for doc make targets. Typically empty.
release_notes: Vec<String>
Release notes. Typically empty.
access_labels: Vec<String>
Labels for managing package access, e.g. ‘external-intel’
Implementations§
source§impl PackageSpec
impl PackageSpec
sourcepub fn from_subcommand(subcommand: &Subcommand) -> Result<Self>
pub fn from_subcommand(subcommand: &Subcommand) -> Result<Self>
Create a package spec by reading the manifest specified by a subcommand
sourcepub fn with_artifacts(self, artifacts: &PackageArtifacts) -> Self
pub fn with_artifacts(self, artifacts: &PackageArtifacts) -> Self
Add a set of artifacts (not specified in the manifest) to the specification
Trait Implementations§
source§impl Clone for PackageSpec
impl Clone for PackageSpec
source§fn clone(&self) -> PackageSpec
fn clone(&self) -> PackageSpec
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for PackageSpec
impl Debug for PackageSpec
source§impl<'de> Deserialize<'de> for PackageSpec
impl<'de> Deserialize<'de> for PackageSpec
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl From<&PackageSpec> for IspmMetadata
impl From<&PackageSpec> for IspmMetadata
source§fn from(value: &PackageSpec) -> Self
fn from(value: &PackageSpec) -> Self
source§impl From<&PackageSpec> for PackageInfo
impl From<&PackageSpec> for PackageInfo
source§fn from(value: &PackageSpec) -> Self
fn from(value: &PackageSpec) -> Self
Auto Trait Implementations§
impl Freeze for PackageSpec
impl RefUnwindSafe for PackageSpec
impl Send for PackageSpec
impl Sync for PackageSpec
impl Unpin for PackageSpec
impl UnwindSafe for PackageSpec
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)