1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Copyright (c) 2017, Marty Mills <daggerbot@gmail.com>
// This software is available under the terms of the zlib license.
// See COPYING.md for more information.

use provider::{GetProvider, VisualProvider};

/// `Visual` provider interface.
pub trait IVisualProvider : Sized + Eq + Clone {
}

/// Surface pixel format.
#[derive(Clone, Eq, PartialEq)]
pub struct Visual {
    provider: VisualProvider,
}

impl Visual {
    #[doc(hidden)]
    pub fn from_provider (provider: VisualProvider) -> Visual {
        Visual { provider }
    }
}

impl AsRef<Visual> for Visual {
    fn as_ref (&self) -> &Visual { self }
}

impl GetProvider for Visual {
    type Provider = VisualProvider;
    fn provider (&self) -> &VisualProvider { &self.provider }
}