/*
 * NSString+MoltenVK.mm
 *
 * Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


#include "NSString+MoltenVK.h"


#pragma mark -
#pragma mark NSMutableString extension

@implementation NSMutableString (MoltenVK)

-(void) appendLineMVK:(NSString*) aString {
	[self appendString: aString];
	[self appendLineMVK];
}

-(void) appendLineMVK {
	[self appendString: @"\n"];
}

@end
