Struct aquascope::analysis::permissions::PermissionsData
source · pub struct PermissionsData {
pub type_droppable: bool,
pub type_writeable: bool,
pub type_copyable: bool,
pub is_live: bool,
pub path_uninitialized: bool,
pub path_moved: Option<MoveKey>,
pub loan_read_refined: Option<LoanKey>,
pub loan_write_refined: Option<LoanKey>,
pub loan_drop_refined: Option<LoanKey>,
pub permissions: Permissions,
}
Expand description
Permissions and first-order provenance for permission refinement.
In contrast to Permissions
, the PermissionsData
stores all relevant
information about what factors into the permissions. Things like
declared type information, loan refinements, move refinements, etc.
PermissionsData
corresponds to a single Place
.
Fields§
§type_droppable: bool
Was the type declared as droppable (i.e. an owned value)?
type_writeable: bool
Was the type declared as writeable (i.e. is it mut
)?
type_copyable: bool
Is the type copyable (i.e. does it implement the Copy
trait)?
is_live: bool
Is the Place
currently live?
path_uninitialized: bool
Is this place uninitialized?
path_moved: Option<MoveKey>
Is the Place
currently uninitialized due to a move?
loan_read_refined: Option<LoanKey>
Is a live loan removing read
permissions?
loan_write_refined: Option<LoanKey>
Is a live loan removing write
permissions?
loan_drop_refined: Option<LoanKey>
Is a live loan removing drop
permissions?
permissions: Permissions
Computed permissions given the above information.
Trait Implementations§
source§impl Clone for PermissionsData
impl Clone for PermissionsData
source§fn clone(&self) -> PermissionsData
fn clone(&self) -> PermissionsData
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for PermissionsData
impl Debug for PermissionsData
source§impl Difference for PermissionsData
impl Difference for PermissionsData
type Diff = PermissionsDataDiff
fn diff(&self, rhs: PermissionsData) -> Self::Diff
source§impl Hash for PermissionsData
impl Hash for PermissionsData
source§impl PartialEq<PermissionsData> for PermissionsData
impl PartialEq<PermissionsData> for PermissionsData
source§fn eq(&self, other: &PermissionsData) -> bool
fn eq(&self, other: &PermissionsData) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Serialize for PermissionsData
impl Serialize for PermissionsData
source§impl TS for PermissionsData
impl TS for PermissionsData
const EXPORT_TO: Option<&'static str> = _
source§fn decl() -> String
fn decl() -> String
interface User { user_id: number, ... }
.
This function will panic if the type has no declaration.source§fn inline() -> String
fn inline() -> String
{ user_id: number }
.
This function will panic if the type cannot be inlined.source§fn inline_flattened() -> String
fn inline_flattened() -> String
This function will panic if the type cannot be flattened.
source§fn dependencies() -> Vec<Dependency>
fn dependencies() -> Vec<Dependency>
source§fn transparent() -> bool
fn transparent() -> bool
true
if this is a transparent type, e.g tuples or a list.This is used for resolving imports when using the
export!
macro.source§fn name_with_type_args(args: Vec<String, Global>) -> String
fn name_with_type_args(args: Vec<String, Global>) -> String
source§fn export() -> Result<(), ExportError>
fn export() -> Result<(), ExportError>
#[ts(export_to = ".."]
.
By default, the filename will be derived from the types name. Read moresource§fn export_to(path: impl AsRef<Path>) -> Result<(), ExportError>
fn export_to(path: impl AsRef<Path>) -> Result<(), ExportError>
#[ts(export_to = "..)]
attribute.source§fn export_to_string() -> Result<String, ExportError>
fn export_to_string() -> Result<String, ExportError>
String
.This function does not format the output, even if the
format
feature is enabled.