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: StringThe one-word alphanumeric package name, e.g. ‘TSFFS-Fuzzer’ in Camel-Kebab-Case
package_number: isizeThe package number. This is the only field that must be included in the crate metadata. It must be globally unique.
name: StringThe human-readable name of the package e.g. ‘TSFFS Fuzzer’, the package name with dashes replaced with spaces.
description: StringA description of the package, e.g. ‘TSFFS: The Target Software Fuzzer for SIMICS’
host: StringThe host this package is built for, either ‘win64’ or ‘linux64’
version: StringThe version number for this package, e.g. ‘6.0.2’ or ‘6.0.pre6’
build_id: isizeThe 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: StringAn identifier for the build ID, e.g. ‘tsffs’
confidentiality: StringThe 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: StringEither “addon” or “base”, all packages should be ‘addon’
disabled: boolWhether the package is disabled, default is not disabled
doc_title: StringThe title used in documentation for the package
make_targets: Vec<String>The list of targets to build for this package
include_release_notes: boolWhether 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§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§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)