mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
canvas: Use Cow<[u8]>
for bytes() getter (#37249)
I fell into trap of over-generalization in https://github.com/servo/servo/pull/36793, but https://github.com/servo/servo/pull/36821 showed `Cow<[u8]>` is all we need (to reuse existing vec alloc or pass on a slice). Testing: There are WPT tests, but it's just refactor so rust keeps us safe. Split of https://github.com/servo/servo/pull/36821 Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This commit is contained in:
parent
9083d58061
commit
c01f65affb
3 changed files with 9 additions and 6 deletions
|
@ -2,6 +2,8 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use std::borrow::Cow;
|
||||
|
||||
use canvas_traits::canvas::{
|
||||
CompositionOrBlending, FillOrStrokeStyle, LineCapStyle, LineJoinStyle,
|
||||
};
|
||||
|
@ -21,7 +23,6 @@ pub(crate) trait Backend: Clone + Sized {
|
|||
type DrawTarget: GenericDrawTarget<Self>;
|
||||
type PathBuilder: GenericPathBuilder<Self>;
|
||||
type SourceSurface;
|
||||
type Bytes<'a>: AsRef<[u8]>;
|
||||
type Path: PathHelpers<Self> + Clone;
|
||||
type GradientStop;
|
||||
type GradientStops;
|
||||
|
@ -122,7 +123,7 @@ pub(crate) trait GenericDrawTarget<B: Backend> {
|
|||
draw_options: &B::DrawOptions,
|
||||
);
|
||||
fn surface(&self) -> B::SourceSurface;
|
||||
fn bytes(&'_ self) -> B::Bytes<'_>;
|
||||
fn bytes(&self) -> Cow<[u8]>;
|
||||
}
|
||||
|
||||
/// A generic PathBuilder that abstracts the interface for azure's and raqote's PathBuilder.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue