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  }