github.com/linchen2chris/hugo@v0.0.0-20230307053224-cec209389705/resources/errorResource.go (about) 1 // Copyright 2021 The Hugo Authors. All rights reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // http://www.apache.org/licenses/LICENSE-2.0 7 // 8 // Unless required by applicable law or agreed to in writing, software 9 // distributed under the License is distributed on an "AS IS" BASIS, 10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 // See the License for the specific language governing permissions and 12 // limitations under the License. 13 14 package resources 15 16 import ( 17 "context" 18 "image" 19 20 "github.com/gohugoio/hugo/common/hugio" 21 "github.com/gohugoio/hugo/common/maps" 22 "github.com/gohugoio/hugo/media" 23 "github.com/gohugoio/hugo/resources/images" 24 "github.com/gohugoio/hugo/resources/images/exif" 25 "github.com/gohugoio/hugo/resources/resource" 26 ) 27 28 var ( 29 _ error = (*errorResource)(nil) 30 // Imnage covers all current Resource implementations. 31 _ images.ImageResource = (*errorResource)(nil) 32 // The list of user facing and exported interfaces in resource.go 33 // Note that if we're missing some interface here, the user will still 34 // get an error, but not as pretty. 35 _ resource.ContentResource = (*errorResource)(nil) 36 _ resource.ReadSeekCloserResource = (*errorResource)(nil) 37 _ resource.ResourcesLanguageMerger = (*resource.Resources)(nil) 38 // Make sure it also fails when passed to a pipe function. 39 _ ResourceTransformer = (*errorResource)(nil) 40 ) 41 42 // NewErrorResource wraps err in a Resource where all but the Err method will panic. 43 func NewErrorResource(err resource.ResourceError) resource.Resource { 44 return &errorResource{ResourceError: err} 45 } 46 47 type errorResource struct { 48 resource.ResourceError 49 } 50 51 func (e *errorResource) Err() resource.ResourceError { 52 return e.ResourceError 53 } 54 55 func (e *errorResource) ReadSeekCloser() (hugio.ReadSeekCloser, error) { 56 panic(e.ResourceError) 57 } 58 59 func (e *errorResource) Content(context.Context) (any, error) { 60 panic(e.ResourceError) 61 } 62 63 func (e *errorResource) ResourceType() string { 64 panic(e.ResourceError) 65 } 66 67 func (e *errorResource) MediaType() media.Type { 68 panic(e.ResourceError) 69 } 70 71 func (e *errorResource) Permalink() string { 72 panic(e.ResourceError) 73 } 74 75 func (e *errorResource) RelPermalink() string { 76 panic(e.ResourceError) 77 } 78 79 func (e *errorResource) Name() string { 80 panic(e.ResourceError) 81 } 82 83 func (e *errorResource) Title() string { 84 panic(e.ResourceError) 85 } 86 87 func (e *errorResource) Params() maps.Params { 88 panic(e.ResourceError) 89 } 90 91 func (e *errorResource) Data() any { 92 panic(e.ResourceError) 93 } 94 95 func (e *errorResource) Height() int { 96 panic(e.ResourceError) 97 } 98 99 func (e *errorResource) Width() int { 100 panic(e.ResourceError) 101 } 102 103 func (e *errorResource) Crop(spec string) (images.ImageResource, error) { 104 panic(e.ResourceError) 105 } 106 107 func (e *errorResource) Fill(spec string) (images.ImageResource, error) { 108 panic(e.ResourceError) 109 } 110 111 func (e *errorResource) Fit(spec string) (images.ImageResource, error) { 112 panic(e.ResourceError) 113 } 114 115 func (e *errorResource) Resize(spec string) (images.ImageResource, error) { 116 panic(e.ResourceError) 117 } 118 119 func (e *errorResource) Filter(filters ...any) (images.ImageResource, error) { 120 panic(e.ResourceError) 121 } 122 123 func (e *errorResource) Exif() *exif.ExifInfo { 124 panic(e.ResourceError) 125 } 126 127 func (e *errorResource) Colors() ([]string, error) { 128 panic(e.ResourceError) 129 } 130 131 func (e *errorResource) DecodeImage() (image.Image, error) { 132 panic(e.ResourceError) 133 } 134 135 func (e *errorResource) Transform(...ResourceTransformation) (ResourceTransformer, error) { 136 panic(e.ResourceError) 137 } 138 139 func (e *errorResource) TransformWithContext(context.Context, ...ResourceTransformation) (ResourceTransformer, error) { 140 panic(e.ResourceError) 141 }