Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
color.ml1 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 32 33 34 35 36 37 38 39 40 41 42 43type 'a t = { t : 'a ; channels : int ; has_alpha : bool } let create ~has_alpha ~channels t = {t; channels; has_alpha} let has_alpha {has_alpha; _} = has_alpha let channels {channels; _} = channels let t {t; _} = t type gray = [`Gray] type rgb = [`Rgb] type rgb_packed = [`Rgb_packed] type yuv = [`Yuv] type xyz = [`Xyz] type rgba = [`Rgba] type any = [`Any] let gray = create ~has_alpha:false ~channels:1 `Gray let rgb = create ~has_alpha:false ~channels:3 `Rgb let yuv = create ~has_alpha:false ~channels:3 `Yuv let xyz = create ~has_alpha:false ~channels:3 `Xyz let rgba = create ~has_alpha:false ~channels:4 `Rgba let rgb_packed = create ~has_alpha:false ~channels:1 `Rgb_packed let color n = create ~has_alpha:(n = 4) ~channels:n `Any let[@inline] channels_of_color : type a. a t -> int = fun {channels; _} -> channels