[][src]Struct rhyoea::debug::messenger::Message

pub struct Message { /* fields omitted */ }

The Message type. See the module level documentation for more

Methods

impl Message[src]

#[must_use] pub fn id_name(&self) -> String[src]

Indicating what triggered the message. For validation layers, this string may contain the valid usage ID (VUID) string identifier that will help identify the specific portion of the specification that the layer believes was violated. Re

Example

use rhyoea::instance::{application::Application, Instance};
use rhyoea::extends::{Extensions, Extends, Filtrable, Layers};
use rhyoea::debug::messenger::{Messenger, Message};

let application = Application::default();

let extensions = Extensions::available()
    .into_iter()
    .filter(Messenger::require_extension)
    .collect();

let layers: Vec<_> = Layers::available()
    .into_iter()
    .filter(Messenger::require_layer)
    .collect();

let instance = Instance::new(&application, extensions, layers).unwrap();
let _ = Messenger::default(instance, |_, _, message| println!("{}", message.id_name()) );

#[must_use] pub const fn id_number(&self) -> i32[src]

Indicates the unique number of this message (if it is non-zero). If this message was triggered by a validation layer, it will contain a unique numeric valid usage ID for the validation warning or error that occurred. Use this number in a table lookup to determine the location in the Vulkan specification that the validation layers believe you may have violated.

Example

use rhyoea::instance::{application::Application, Instance};
use rhyoea::extends::{Extensions, Extends, Filtrable, Layers};
use rhyoea::debug::messenger::{Messenger, Message};

let application = Application::default();

let extensions = Extensions::available()
    .into_iter()
    .filter(Messenger::require_extension)
    .collect();

let layers: Vec<_> = Layers::available()
    .into_iter()
    .filter(Messenger::suggest_layer)
    .collect();

let instance = Instance::new(&application, extensions, layers).unwrap();
let _ = Messenger::default(instance, |_, _, message| println!("{}", message.id_number() ) );

#[must_use] pub fn description(&self) -> String[src]

Indicates the specifics of the message.

Example

use rhyoea::instance::{application::Application, Instance};
use rhyoea::extends::{Extensions, Extends, Filtrable, Layers};
use rhyoea::debug::messenger::{Messenger, Message};

let application = Application::default();

let extensions = Extensions::available()
    .into_iter()
    .filter(Messenger::require_extension)
    .collect();

let layers: Vec<_> = Layers::available()
    .into_iter()
    .filter(Messenger::suggest_layer)
    .collect();

let instance = Instance::new(&application, extensions, layers).unwrap();
let _ = Messenger::default(instance, |_, _, message| println!("{}", message.description() ) );

#[must_use] pub fn objects(&self) -> Vec<Object>[src]

Contains the information about any objects that can be easily associated with the message

Example

use rhyoea::instance::{application::Application, Instance};
use rhyoea::extends::{Extensions, Extends, Filtrable, Layers};
use rhyoea::debug::messenger::{Messenger, Message};

let application = Application::default();

let extensions = Extensions::available()
    .into_iter()
    .filter(Messenger::require_extension)
    .collect();

let layers: Vec<_> = Layers::available()
    .into_iter()
    .filter(Messenger::suggest_layer)
    .collect();

let instance = Instance::new(&application, extensions, layers).unwrap();
let _ = Messenger::default(instance, |_, _, message| println!("{:#?}", message.objects() ) );

#[must_use] pub fn queue_labels(&self) -> Vec<Label>[src]

Example

use rhyoea::instance::{application::Application, Instance};
use rhyoea::extends::{Extensions, Extends, Filtrable, Layers};
use rhyoea::debug::messenger::{Messenger, Message};

let application = Application::default();

let extensions = Extensions::available()
    .into_iter()
    .filter(Messenger::require_extension)
    .collect();

let layers: Vec<_> = Layers::available()
    .into_iter()
    .filter(Messenger::suggest_layer)
    .collect();

let instance = Instance::new(&application, extensions, layers).unwrap();
let _ = Messenger::default(instance, |_, _, message| println!("{:#?}", message.queue_labels() ) );

#[must_use] pub fn command_buffer_labels(&self) -> Vec<Label>[src]

Example

use rhyoea::instance::{application::Application, version::Version, application::Engine, Instance};
use rhyoea::extends::{Extensions, Extends, Filtrable, Layers};
use rhyoea::debug::messenger::{Messenger, Message};

let application_version = Version::new(1, 0, 0);
let engine = Engine::default();

let application = Application::new("qux".to_string(), application_version, engine).unwrap();

let extensions = Extensions::available()
    .into_iter()
    .filter(Messenger::require_extension)
    .collect();

let layers: Vec<_> = Layers::available()
    .into_iter()
    .filter(Messenger::suggest_layer)
    .collect();

let instance = Instance::new(&application, extensions, layers).unwrap();
let _ = Messenger::default(instance, |_, _, message| println!("{:#?}", message.command_buffer_labels() ) );

pub fn default_callback(
    message_severity: MessageSeverity,
    message_type: MessageType,
    message: Self
)
[src]

Example

use rhyoea::instance::{application::Application, Instance};
use rhyoea::extends::{Extensions, Extends, Filtrable, Layers};
use rhyoea::debug::messenger::{Messenger, Message};

let application = Application::default();

let extensions = Extensions::available()
    .into_iter()
    .filter(Messenger::require_extension)
    .collect();

let layers: Vec<_> = Layers::available()
    .into_iter()
    .filter(Messenger::suggest_layer)
    .collect();

let instance = Instance::new(&application, extensions, layers).unwrap();
assert!(Messenger::default(instance, Message::default_callback).is_ok());

Trait Implementations

impl Clone for Message[src]

impl Copy for Message[src]

impl Debug for Message[src]

Auto Trait Implementations

impl !Send for Message

impl !Sync for Message

impl Unpin for Message

impl UnwindSafe for Message

impl RefUnwindSafe for Message

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = !

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]